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

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

Spring @Configuration注解及配置方法

瀏覽:23日期:2023-09-10 15:29:16

Spring @Configuration注解

Spring3.0開始,@Configuration用于定義配置類,定義的配置類可以替換xml文件,一般和@Bean注解聯合使用。

@Configuration注解主要標注在某個類上,相當于xml配置文件中的<beans>

@Bean注解主要標注在某個方法上,相當于xml配置文件中的<bean>

Spring @Configuration注解及配置方法

等價于

Spring @Configuration注解及配置方法

注意:@Configuration注解的配置類有如下要求:

@Configuration不可以是final類型; @Configuration不可以是匿名類; 嵌套的configuration必須是靜態類。

Configuration里面有一個component組件來標識,說明此類也是一個bean,可以被調用,來看看哪些主要的注解含有component:

Annotation 的裝配 Spring 中,盡管使用 XML 配置文件可以實現 Bean 的裝配工作,但如果應用中有很多 Bean 時,會導致 XML 配置文件過于靡腫,給后續的維護和升級工作帶來一定的困難 為此, Spring 提供了對 Annotation (注解)技術的全面支持 Spring 中定義了一系列的注解,常用的注解如下所示

• @Component: 可以使用此注解描述 Spring 中的 Bean ,但它是一個泛化的概念,僅僅表 示一個組件 (Bean ,并且可以作用在任何層次 使用時只需將該注解標注在相應類上即可 • @Repository: 用于將數據訪問層( DAO 層)的類標識為 Spring 中的 Bean ,其功能與 @Component 相同 • @Service: 通常作用在業務層( Service ,用于將業務層的類標識為 Spring 中的 Bean 其功能與@Component 相同 • @Controller: 通常作用在控制層(如 Spring MVC Controller ,用于將控制層的類標識 Spring 中的 Bean ,其功能與@Component 相同 • @Autowired: 用于對 Bean 的屬性變量、屬性的 setter 方法及構造方法進行標注,配合對 應的注解處理器完成 Bean 的自動配置工作 默認按照 Bean 的類型進行裝配 • @Resource: 其作用與 Autowired 一樣 其區別在于@Autowired 默認按照 Bean 類型裝 配,而@Resource 默認按照 Bean 實例名稱進行裝配 @Resource 中有兩個重要屬性: name type Spring name 屬性解析為 Bean 實例名稱, type 屬性解析為 Bean 實例類型 如果 指定 name 屬性,貝IJ 按實例名稱進行裝配;如果指定 type 屬性,則按 Bean 類型進行裝配;如 果都不指定,則先按 Bean 實例名稱裝配,如果不能匹配,再按照 Bean 類型進行裝自己;如果都 無法匹配,則拋出 NoSuchBeanDefinitionException 異常 • @Qualifier: @Autowired 注解配合使用,會將默認的按 Bean 類型裝配修改為接 Bean 的實例名稱裝配, Bean 的實例名稱由 @Qualifier 注解的參數指定 在上面幾個注解中,雖然@Repository @Service @Controller 功能與@Component 注解 的功能相同,但為了使標注類本身用途更加清晰,建議在實際開發中使用@Repository @Service @Controller 分別對實現類進行標注 下面。

@Configuration

這里的@Configuration對我們來說不陌生,它就是JavaConfig形式的Spring Ioc容器的配置類使用的那個@Configuration,SpringBoot社區推薦使用基于JavaConfig的配置形式,所以,這里的啟動類標注了@Configuration之后,本身其實也是一個IoC容器的配置類。

舉幾個簡單例子回顧下,XML跟config配置方式的區別:

表達形式層面

基于XML配置的方式是這樣:

<?xml version='1.0' encoding='UTF-8'?><beans xmlns='http://www.springframework.org/schema/beans' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd' default-lazy-init='true'> <!--bean定義--></beans>

而基于JavaConfig的配置方式是這樣:

@Configurationpublic class MockConfiguration{ //bean定義}

任何一個標注了@Configuration的Java類定義都是一個JavaConfig配置類。

注冊bean定義層面基于XML的配置形式是這樣:

<bean class='..MockServiceImpl'> ...</bean>

而基于JavaConfig的配置形式是這樣的:

@Configurationpublic class MockConfiguration{ @Bean public MockService mockService(){ return new MockServiceImpl(); }}

任何一個標注了@Bean的方法,其返回值將作為一個bean定義注冊到Spring的IoC容器,方法名將默認成該bean定義的id。

表達依賴注入關系層面為了表達bean與bean之間的依賴關系,在XML形式中一般是這樣:

<bean class='..MockServiceImpl'> <propery name ='dependencyService' ref='dependencyService' /></bean><bean class='DependencyServiceImpl'></bean>

而基于JavaConfig的配置形式是這樣的:

@Configurationpublic class MockConfiguration{ @Bean public MockService mockService(){ return new MockServiceImpl(dependencyService()); } @Bean public DependencyService dependencyService(){ return new DependencyServiceImpl(); }}

如果一個bean的定義依賴其他bean,則直接調用對應的JavaConfig類中依賴bean的創建方法就可以了。

標簽: Spring
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品日本一区二区不卡视频| 精品五月天堂| 91精品一区二区三区综合| 九九99久久精品在免费线bt| 国产精品xxx在线观看| 亚洲精品国产日韩| 亚洲乱码久久| 亚洲欧洲国产精品一区| 亚洲精品日本| 日韩欧美中文字幕电影| 日韩不卡在线观看日韩不卡视频| 日韩久久一区| 91成人在线精品视频| 国产精品一区二区av交换 | 亚洲欧美日本视频在线观看| 欧美日韩精品一本二本三本| 亚洲欧美激情诱惑| 综合激情网站| 国产欧美日韩一区二区三区在线| 国产美女久久| 国产成人精品免费视| 久久91导航| 亚洲精品888| 蜜臀久久久久久久| 日韩不卡免费视频| 国产极品一区| 亚洲爱爱视频| 国产精品88久久久久久| 免费人成网站在线观看欧美高清| 在线视频亚洲欧美中文| 欧美日韩亚洲一区二区三区在线| 美女久久99| 亚洲91视频| 蜜臀久久99精品久久久画质超高清 | 日韩视频网站在线观看| 99久精品视频在线观看视频| 蜜臀久久99精品久久久久宅男| 亚洲精品一二三**| 久久精品一区| 伊人精品一区| 日韩一区免费| 国产aa精品| 男女精品网站| 久久精品三级| 尹人成人综合网| 国产精选久久| 亚洲婷婷免费| 日韩精品第二页| 色综合狠狠操| 国产精品视区| 国产免费av一区二区三区| 成人福利av| 在线亚洲激情| 国产探花在线精品一区二区| 一本大道色婷婷在线| 免费人成精品欧美精品| 荡女精品导航| 视频一区二区国产| 精品三级av在线导航| 一区视频在线| 国产精品国码视频| 欧美精品九九| 国产精品igao视频网网址不卡日韩 | 日韩 欧美一区二区三区| 国产成人精品一区二区三区视频| 国产精品毛片| 精品国产欧美日韩一区二区三区| 欧美成人国产| 国产精品xxxav免费视频| 午夜久久一区| 成人亚洲一区二区| 日本在线不卡视频一二三区| 日韩精品欧美激情一区二区| 青青草伊人久久| 伊人久久大香线蕉av不卡| 久久国产视频网| 自由日本语亚洲人高潮| 国产成人精品亚洲线观看| 午夜亚洲福利| 久久国产日韩| 美女精品一区二区| 日本va欧美va瓶| 亚洲女同中文字幕| 久久久久久婷| 国产精品色在线网站| 香蕉久久久久久久av网站| 日本一区二区高清不卡| 婷婷精品久久久久久久久久不卡| 欧美一级精品| 麻豆中文一区二区| 婷婷综合一区| 欧美~级网站不卡| 成人国产精品| 国产精品免费大片| 男人的天堂久久精品| 99久久亚洲精品| 国内自拍视频一区二区三区| 欧美午夜三级| 综合视频一区| 亚洲免费中文| 黄色不卡一区| 日韩一区亚洲二区| 久久xxx视频| 日韩一区二区三区高清在线观看| 91精品福利| 国产成人精品亚洲日本在线观看| 欧美国产精品| 国产欧美午夜| 欧美一区免费| 日韩国产精品久久久| 亚洲免费毛片| 免费国产亚洲视频| 亚洲一区二区成人| 亚洲精品在线观看91| 久久久久国产| 久久精品卡一| 日韩在线二区| 日韩欧美不卡| 日本美女一区| 国产综合色区在线观看| 日韩av二区| 久久一区精品| 久久不卡日韩美女| 国产精品对白久久久久粗| 国产亚洲一卡2卡3卡4卡新区| 日韩精品中文字幕一区二区| 日韩精品成人| 国产欧美日韩影院| 久久99免费视频| 久久尤物视频| 精品免费av| 国产成人免费| 日韩综合精品| 国产精品99免费看| 五月天久久网站| 在线国产一区二区| 91成人超碰| 日韩专区在线视频| 综合亚洲视频| 日韩精品免费视频人成| 欧美三区不卡| 精品一区二区三区中文字幕视频| 久久精品人人| 欧美日韩精品免费观看视欧美高清免费大片 | 欧美久久亚洲| 国产精品欧美在线观看| 国产免费播放一区二区| 久久伊人亚洲| 国产成人精品亚洲线观看| 成人片免费看| 欧美1区免费| 亚洲人成亚洲精品| 国产免费播放一区二区| 开心激情综合| 香蕉成人av| 日韩视频免费| 综合亚洲色图| 国产精品草草| 成人精品亚洲| 国产精品社区| 欧美日韩一区二区三区不卡视频| 久久久亚洲欧洲日产| 日韩电影二区| 午夜av成人| 日韩中文字幕区一区有砖一区 | 国产精品乱战久久久| 岛国精品一区| 午夜久久美女| 欧美永久精品| 国产精品精品国产一区二区| 欧美日韩一二| 日韩中文字幕亚洲一区二区va在线| 久久精品97| 欧美日韩中文一区二区| 天海翼亚洲一区二区三区| 国产极品一区| 免费国产自久久久久三四区久久| 亚洲精品福利| 亚洲天堂资源| 亚洲乱码一区| 98精品视频| 在线精品亚洲| 国产中文字幕一区二区三区| 欧美在线亚洲| 乱一区二区av| 国产视频一区三区| 国产精品日韩精品中文字幕| 国产精品99免费看| 久久99精品久久久野外观看| 欧美不卡在线| 国产欧美在线观看免费| 免费成人网www| 日本午夜精品| 999精品在线| 国产欧美日韩精品一区二区三区| 婷婷成人在线| 精品精品国产三级a∨在线| 国产精品三上| 超级白嫩亚洲国产第一| 亚洲人妖在线|