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

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

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

瀏覽:172日期: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久久,三上悠亚国产精品一区二区三区
欧美www视频在线观看| 久久亚洲视频| 欧美亚洲二区| 91九色综合| 日本中文字幕一区二区视频| 少妇精品久久久一区二区三区| 老色鬼久久亚洲一区二区| 美日韩精品视频| 最新国产精品视频| 欧美自拍一区| 婷婷五月色综合香五月| 日本va欧美va欧美va精品| 日韩av午夜在线观看| 国产精品17p| 久久精品理论片| 色在线视频观看| 欧美a级片一区| 免费高清在线一区| 国产乱码精品一区二区三区亚洲人 | 欧美日韩亚洲一区二区三区在线 | 国产一区丝袜| 久久久久久久欧美精品| 欧美激情日韩| 激情六月综合| 在线视频精品| 91精品国产自产精品男人的天堂 | 欧美日韩18| 日韩电影免费网址| 丝瓜av网站精品一区二区| 国产欧美日韩视频在线 | 青草综合视频| 色偷偷色偷偷色偷偷在线视频| 国产一区91| 麻豆国产欧美一区二区三区| 亚洲一级二级| 免费不卡在线视频| 精品日韩在线| 男人的天堂亚洲一区| 精品久久美女| 亚洲另类av| 激情视频网站在线播放色| 三级亚洲高清视频| 精品一区av| 玖玖精品视频| 一区二区三区四区日本视频| 免费人成在线不卡| 日韩不卡一区| 天堂va在线高清一区| 日韩欧美午夜| 久久国产生活片100| 国模精品一区| 男人的天堂亚洲一区| 国产精品成人a在线观看| 蜜臀av性久久久久蜜臀aⅴ流畅| 另类综合日韩欧美亚洲| 日av在线不卡| 群体交乱之放荡娇妻一区二区| 欧美日韩视频免费看| 欧美日韩激情| 成人欧美一区二区三区的电影| 亚洲精品系列| 亚洲国产日韩欧美在线| 老司机免费视频一区二区三区| 丝袜a∨在线一区二区三区不卡| 91一区二区三区四区| 日韩影院在线观看| 久久美女精品| 精品国产欧美| 国产日韩欧美三区| 日韩精品一级中文字幕精品视频免费观看 | 加勒比视频一区| 欧美亚洲三区| 日韩精品亚洲aⅴ在线影院| 最新日韩av| 欧美亚洲激情| 日韩在线欧美| 色爱综合网欧美| 美女精品视频在线| 美国av一区二区| 黄色不卡一区| 999国产精品视频| 超碰超碰人人人人精品| 久久精品国产久精国产| 国产欧美一区二区色老头| 日韩中文字幕视频网| 日韩中文字幕不卡| 亚洲在线电影| 鲁大师影院一区二区三区| 亚洲性图久久| 性欧美xxxx免费岛国不卡电影| 女生影院久久| 国产 日韩 欧美一区| 久久久久九九精品影院| 日本视频在线一区| 日韩精品免费视频一区二区三区 | 亚洲在线免费| 亚洲欧美久久久| 99国产成+人+综合+亚洲欧美| 精品一区在线| 亚洲神马久久| 日韩精品一区第一页| 视频在线观看91| 亚洲性视频在线| 亚洲区国产区| 一级欧美视频| 涩涩涩久久久成人精品| 日韩在线成人| 国产亚洲精aa在线看| 国产伦乱精品| 91欧美日韩| 精品一区亚洲| 综合日韩在线| 国产精品一区二区av交换| 国产一区二区三区不卡视频网站 | se01亚洲视频| aⅴ色国产欧美| 中文字幕av一区二区三区人| 国产日韩亚洲| 国产精品99一区二区三区| 激情综合网址| 中文字幕日本一区二区| 日韩一区二区三区高清在线观看| 水蜜桃久久夜色精品一区的特点 | 久久99国产精品视频| 久久成人福利| 麻豆精品av| 国产欧美日韩在线观看视频| 精品国产第一福利网站| 久久久噜噜噜| 91久久久精品国产| 噜噜噜躁狠狠躁狠狠精品视频| 中文字幕一区二区精品区| 香蕉久久一区| 91亚洲精品在看在线观看高清| 日韩精品午夜视频| 久久av免费| 色一区二区三区| 综合一区二区三区| 青草综合视频| 成人精品动漫一区二区三区| 亚洲精品在线影院| 国产网站在线| 一本综合精品| 国产日韩三级| 最近高清中文在线字幕在线观看1| 视频福利一区| 中文不卡在线| 色一区二区三区| 女同性一区二区三区人了人一 | 亚洲丝袜啪啪| 国产精品第一国产精品| 黄毛片在线观看| 精品丝袜久久| 亚洲综合在线电影| 石原莉奈一区二区三区在线观看 | 国产日韩一区二区三免费高清| 国产精品伦一区二区| 人在线成免费视频| 黄色在线一区| 欧美色综合网| 日韩伦理在线一区| 久久国产亚洲精品| 国产精品欧美一区二区三区不卡| 国产精品蜜芽在线观看| 美女毛片一区二区三区四区| 日韩国产欧美在线视频| 国产69精品久久| 日韩在线短视频| 亚洲欧美激情诱惑| 国产福利资源一区| 欧美另类综合| 青青在线精品| 中文字幕在线视频久| 欧美精品影院| 欧美日韩在线观看视频小说| 日韩综合一区二区| 麻豆视频在线看| 日本99精品| 欧美亚洲国产精品久久| 日本中文字幕不卡| sm捆绑调教国产免费网站在线观看| 中日韩男男gay无套| 国产精东传媒成人av电影| 欧美日韩精品在线一区| 欧美一区激情| 免费视频国产一区| 精品中文在线| 伊人精品久久| 99视频精品| 黄色网一区二区| 中文无码久久精品| 久久精品国产大片免费观看| 午夜国产精品视频| 国产suv精品一区二区四区视频| 国产精品伊人| 蜜臀av亚洲一区中文字幕| 久久九九精品| 国产伦理久久久久久妇女| 影院欧美亚洲| 丝袜美腿诱惑一区二区三区 |