日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Spring純注解配置實現代碼示例解析

瀏覽:168日期:2023-08-22 09:34:59

問題

我們發現,之所以我們現在離不開 xml 配置文件,是因為我們有一句很關鍵的配置:<!-- 告知spring框架在,讀取配置文件,創建容器時,掃描注解,依據注解創建對象,并存入容器中 --><context:component-scan base-package='com.itheima'></context:component-scan>如果他要也能用注解配置,那么我們就離脫離 xml 文件又進了一步。另外,數據源和 JdbcTemplate 的配置也需要靠注解來實現。<!-- 配置 dbAssit --><bean class='com.itheima.dbassit.DBAssit'><property name='dataSource' ref='dataSource'></property></bean><!-- 配置數據源 --><bean class='com.mchange.v2.c3p0.ComboPooledDataSource'><property name='driverClass' value='com.mysql.jdbc.Driver'></property><property name='jdbcUrl' value='jdbc:mysql:///spring_day02'></property><property name='user' value='root'></property><property name='password' value='1234'></property></bean>

新注解說明

@Configuration

作用:

用于指定當前類是一個 spring 配置類,當創建容器時會從該類上加載注解。獲取容器時需要使用AnnotationApplicationContext(有@Configuration 注解的類.class)。

屬性:

value:用于指定配置類的字節碼

實例:

示例代碼:

/*** spring 的配置類,相當于 bean.xml 文件* @author * @Company * @Version 1.0*/@Configurationpublic class SpringConfiguration {}

注意:

我們已經把配置文件用類來代替了,但是如何配置創建容器時要掃描的包呢?

請看下一個注解。

@ComponentScan

作用:

用于指定 spring 在初始化容器時要掃描的包。作用和在 spring 的 xml 配置文件中的:

<context:component-scan base-package='com.itheima'/>是一樣的。

屬性:

basePackages:用于指定要掃描的包。和該注解中的 value 屬性作用一樣。

示例代碼:

/*** spring 的配置類,相當于 bean.xml 文件* @author * @Company * @Version 1.0*/@Configuration@ComponentScan('com.itheima')public class SpringConfiguration {}

注意:

我們已經配置好了要掃描的包,但是數據源和 JdbcTemplate 對象如何從配置文件中移除呢?請看下一個注解。

@Bean

作用:

該注解只能寫在方法上,表明使用此方法創建一個對象,并且放入 spring 容器。

屬性:

name:給當前@Bean 注解方法創建的對象指定一個名稱(即 bean 的 id)。

/*** 連接數據庫的配置類* @author * @Company * @Version 1.0*/public class JdbcConfig {/*** 創建一個數據源,并存入 spring 容器中* @return*/@Bean(name='dataSource')public DataSource createDataSource() {try {ComboPooledDataSource ds = new ComboPooledDataSource();ds.setUser('root');ds.setPassword('1234');ds.setDriverClass('com.mysql.jdbc.Driver');ds.setJdbcUrl('jdbc:mysql:///spring_day02');return ds;} catch (Exception e) {throw new RuntimeException(e);}}/*** 創建一個 DBAssit,并且也存入 spring 容器中* @param dataSource* @return*/@Bean(name='runner')@Scope('prototype') //配置QueryRunner為多列對象 防止多個dao調用使線程混亂public QueryRunner createDBAssit(DataSource dataSource) {return new DBAssit(dataSource);}}

注意:

我們已經把數據源和 DBAssit 從配置文件中移除了,此時可以刪除 bean.xml 了。

但是由于沒有了配置文件,創建數據源的配置又都寫死在類中了。如何把它們配置出來呢?

請看下一個注解。

@PropertySource

用于加載.properties 文件中的配置。例如我們配置數據源時,可以把連接數據庫的信息寫到properties 配置文件中,就可以使用此注解指定 properties 配置文件的位置。

屬性:

value[]:用于指定 properties 文件位置。如果是在類路徑下,需要寫上 classpath:

配置:

/*** 連接數據庫的配置類* @author 黑馬程序員* @Company http://www.ithiema.com* @Version 1.0*/public class JdbcConfig {@Value('${jdbc.driver}')private String driver;@Value('${jdbc.url}')private String url;@Value('${jdbc.username}')private String username;@Value('${jdbc.password}')private String password;/*** 創建一個數據源,并存入 spring 容器中* @return*/@Bean(name='dataSource')public DataSource createDataSource() {try { ComboPooledDataSource ds = new ComboPooledDataSource(); ds.setDriverClass(driver); ds.setJdbcUrl(url); ds.setUser(username); ds.setPassword(password); return ds; } catch (Exception e) { throw new RuntimeException(e); }}}jdbc.properties 文件:jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/day44_ee247_springjdbc.username=rootjdbc.password=1234

注意:

此時我們已經有了兩個配置類,但是他們還沒有關系。如何建立他們的關系呢?請看下一個注解。

@Import

作用:

用于導入其他配置類,在引入其他配置類時,可以不用再寫@Configuration 注解。當然,寫上也沒問題。

屬性:

value[]:用于指定其他配置類的字節碼。

示例代碼:

@Configuration@ComponentScan(basePackages = 'com.itheima.spring')@Import({ JdbcConfig.class})public class SpringConfiguration {}@Configuration@PropertySource('classpath:jdbc.properties')public class JdbcConfig{}

通過注解獲取容器:

ApplicationContext ac =new AnnotationConfigApplicationContext(SpringConfiguration.class);

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Spring
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
精品国模一区二区三区| 国产精品国产一区| 国产日韩欧美一区| 欧美精品三级在线| 欧美影院精品| 国产精区一区二区| 91日韩免费| 日韩一区三区| 亚洲欧美日韩一区在线观看| 亚洲激情精品| 99国产精品免费视频观看| 三级亚洲高清视频| 久久中文字幕一区二区三区| 国产一区二区亚洲| 伊人久久亚洲热| 国产一卡不卡| 激情亚洲影院在线观看| 中文字幕视频精品一区二区三区| 国产欧美另类| 国产美女高潮在线观看| 亚洲男人在线| 久久久一本精品| 天堂av一区| 亚洲伦乱视频| 国产亚洲字幕| 精品国产一区二区三区性色av| 久久精品高清| 国产福利一区二区精品秒拍| 99国产精品视频免费观看一公开 | 麻豆国产欧美日韩综合精品二区| 日韩免费高清| 欧美三区不卡| 久久成人精品| 日韩视频1区| 国内精品福利| 国产麻豆精品| 亚洲三级观看| 首页亚洲欧美制服丝腿| 国产在线日韩精品| 日本成人手机在线| 欧美女激情福利| 国产videos久久| 国产精品三级| 欧美有码在线| 日本视频一区二区| 亚洲精品免费观看| 久久久久伊人| 国产精品久久亚洲不卡| 性色一区二区| 麻豆国产精品视频| 久久精品国产久精国产| 久久精品毛片| 久久国产中文字幕| 国产中文字幕一区二区三区| 国产亚洲欧美日韩在线观看一区二区| 日韩精品久久理论片| 日韩av资源网| 久久国内精品| 国产精品麻豆成人av电影艾秋| 久久精品国产一区二区| 久久国产尿小便嘘嘘| 日韩精品三级| 国产一区2区在线观看| 国产精品久久久久久久免费观看 | 国产综合精品一区| av资源中文在线| 精品99久久| a天堂资源在线| 欧美手机在线| 亚洲乱码视频| 精品国产一区二区三区性色av| 日本黄色精品| 亚洲美洲欧洲综合国产一区| 免费看黄色91| 精品国产日韩欧美精品国产欧美日韩一区二区三区 | 久久97视频| 欧美日韩黑人| 国产精品亚洲综合在线观看| 国产成人黄色| 四虎在线精品| 久久精品动漫| 免费在线观看成人| 国产精品极品国产中出| 色爱综合网欧美| 一区二区91| 国产成人精品一区二区三区视频 | 欧美日一区二区在线观看| 国产一区二区三区视频在线| 亚洲欧美综合| 久久中文字幕导航| 美女网站一区| 国产a亚洲精品| 亚洲日产av中文字幕| 国产在视频一区二区三区吞精| 婷婷综合成人| 国产一区二区三区天码| 免费日本视频一区| 亚洲夜间福利| 国产精品99一区二区三| 羞羞答答国产精品www一本| 国产h片在线观看| 日韩国产一区二区| 国产精品成人a在线观看| 好吊视频一区二区三区四区| 福利一区二区免费视频| 国产欧美日韩一级| 国产探花在线精品一区二区| 蜜桃视频在线观看一区| 日韩中文字幕av电影| 婷婷成人基地| 国产美女久久| 国产精品啊v在线| 日韩精品欧美精品| 亚洲精品极品| 国产欧美日韩一级| 91p九色成人| 久久xxx视频| 你懂的国产精品| 欧美激情日韩| 日本а中文在线天堂| 亚洲精品免费观看| 视频一区二区欧美| 丝袜美腿成人在线| 日韩毛片一区| 日韩精品成人在线观看| 国产一级久久| 亚洲日韩中文字幕一区| 日本精品另类| 清纯唯美亚洲综合一区| 国产日韩三级| 久久女人天堂| 久久电影tv| 婷婷综合成人| 久久精品色播| 在线 亚洲欧美在线综合一区| 精品在线播放| 日本成人在线一区| 美女性感视频久久| 国产精品不卡| 久久精品亚洲人成影院 | 日本v片在线高清不卡在线观看| 免费精品视频最新在线| 日韩区欧美区| 国产精品久久久一区二区| 久久精品国产999大香线蕉| 亚洲天堂av影院| 亚洲一级在线| 无码日韩精品一区二区免费| 欧美片第1页综合| 国产成人精品一区二区免费看京| 麻豆中文一区二区| 99精品电影| 亚洲精品免费观看| 精品一区二区三区中文字幕| 蜜臀国产一区| 国产亚洲一级| 国产精品久久久久久久久久齐齐| 美女视频一区在线观看| 美女网站一区| 国产精品欧美三级在线观看| 国产美女高潮在线观看| 免费在线观看一区二区三区| 在线观看精品| 成人高清一区| 亚洲一区成人| 日韩国产欧美| 欧洲av不卡| 日韩精品看片| 中文字幕色婷婷在线视频| 国产精品亲子伦av一区二区三区| 久久国产乱子精品免费女| 日韩有吗在线观看| 日韩在线电影| 国产精品综合色区在线观看| 人人精品久久| 国产亚洲一区二区三区不卡| 日韩和欧美一区二区三区| 综合激情网站| 亚洲一区二区三区高清| 国产精品一区二区av交换| 日韩一区二区三免费高清在线观看| 免费精品视频| 自拍自偷一区二区三区| 日本中文字幕视频一区| 美女精品一区二区| 97精品一区二区| 999国产精品| 三级欧美韩日大片在线看| 国产精品伊人| 国产资源在线观看入口av| 免费视频一区二区| 欧美激情视频一区二区三区免费| 亚洲福利精品| 蜜臀久久久久久久| 国产成人在线中文字幕| 在线一区视频观看| 亚洲一区国产| 久久久久观看| 香蕉久久国产| 欧美少妇精品|