精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Spring 注入 Bean 的幾種方式,還有誰不會?

開發 前端
我們談到Spring的時候一定會提到IOC容器、DI依賴注入,Spring通過將一個個類標注為Bean的方法注入到IOC容器中,達到了控制反轉的效果。那么我們剛開始接觸Bean的時候,一定是使用xml文件,一個一個的注入。

通過注解注入Bean

背景

我們談到Spring的時候一定會提到IOC容器、DI依賴注入,Spring通過將一個個類標注為Bean的方法注入到IOC容器中,達到了控制反轉的效果。那么我們剛開始接觸Bean的時候,一定是使用xml文件,一個一個的注入,就例如下面這樣。

<bean id="bean" class="beandemo.Bean" />

我們的項目一般很大的話,就需要成千上百個Bean去使用,這樣寫起來就很繁瑣。那么Spring就幫我們實現了一種通過注解來實現注入的方法。只需要在你需要注入的類前面加上相應的注解,Spring就會幫助我們掃描到他們去實現注入。

xml掃描包的方式

<context:component-scan base-package="com.company.beandemo"/>

通過注解注入的一般形式

一般情況下,注入Bean有一個最直白,最易懂的方式去實現注入,下面廢話先不多說,先貼代碼。

另外,Spring 系列面試題和答案全部整理好了,微信搜索Java面試庫小程序,可以在線刷題。

Bean類

public class MyBean{
}

Configuration類

//創建一個class配置文件
@Configuration
public class MyConfiguration{
//將一個Bean交由Spring進行管理
@Bean
public MyBean myBean(){
return new MyBean();
}
}

Test類

與xml有一點不同,這里在Test中,實例化的不再是ClassPathXmlApplicationContext,而是獲取的AnnotationConfigApplicationContext實例。

ApplicationContext context = new AnnotationConfigApplicationContext(MyConfiguration.class);
MyBean myBean = cotext.getBean("myBean",MyBean.class);
System.out.println("myBean = " + myBean);

上面的代碼中MyBean也就是我們需要Spring去管理的一個Bean,他只是一個簡單的類。而MyConfiguration中,我們首先用@Configuration注解去標記了該類,這樣標明該類是一個Spring的一個配置類,在加載配置的時候會去加載他。

在MyConfiguration中我們可以看到有一個方法返回的是一個MyBean的實例,并且該方法上標注著@Bean的注解,標明這是一個注入Bean的方法,會將下面的返回的Bean注入IOC。

通過構造方法注入Bean

我們在生成一個Bean實例的時候,可以使用Bean的構造方法將Bean實現注入。直接看代碼

Bean類

@Component
public class MyBeanConstructor {

private AnotherBean anotherBeanConstructor;

@Autowired
public MyBeanConstructor(AnotherBean anotherBeanConstructor){
this.anotherBeanConstructor = anotherBeanConstructor;
}

@Override
public String toString() {
return "MyBean{" +
"anotherBeanConstructor=" + anotherBeanConstructor +
'}';
}
}

AnotherBean類

@Component(value="Bean的id,默認為類名小駝峰")
public class AnotherBean {
}

Configuration類

@Configuration
@ComponentScan("com.company.annotationbean")
public class MyConfiguration{
}

這里我們可以發現,和一般方式注入的代碼不一樣了,我們來看看新的注解都是什么意思:

@AutoWired

簡單粗暴,直接翻譯過來的意思就是自動裝配:wrench:,還不理解為什么叫自動裝配:wrench:?看了下一個注解的解釋你就知道了。若是在這里注入的時候指定一個Bean的id就要使用@Qualifier注解。

@Component(默認單例模式)

什么??這翻譯過來是零件,怎么感覺像是修汽車??是的,Spring管理Bean的方法就是修汽車的方式。我們在需要將一個類變成一個Bean被Spring可以注入的時候加上注解零件@Conmonent,那么我們就可以在加載Bean的時候把他像零件一樣裝配:wrench:到這個IOC汽車上了

在這里我們還有幾個其他的注解也可以實現這個功能,也就是細化的@Component:

  • @Controller 標注在Controller層
  • @Service 標注在Service層
  • @Repository 標注在dao層

@ComponentScan("")

還是翻譯,零件掃描,我們去看看括號里的“零件倉庫”里面,哪些“零件”(類)需要被裝載,Spring就會去掃描這個包,將里面所有標注了@Component的類進行注入。

這里的通過構造方法進行注入就很好理解了,我們在裝配MyBean這個零件的時候,突然發現他必須在AnotherBean的基礎上才能安裝到IOC里面,那么我們就在每次裝配MyBean的時候自動裝配:wrench:一個AnotherBean進去。舉個:chestnut:吧:

還是以汽車為例,我們在踩油門出發之前,是不是必須發車??這里的AutoWired的內容就像發車,你不發車,這個油門你踩斷都沒有用,他都不會走。

通過set方法注入Bean

我們可以在一個屬性的set方法中去將Bean實現注入,看代碼吧

MyBean類

@Component
public class MyBeanSet {

private AnotherBean anotherBeanSet;

@Autowired
public void setAnotherBeanSet(AnotherBean anotherBeanSet) {
this.anotherBeanSet = anotherBeanSet;
}

@Override
public String toString() {
return "MyBeanSet{" +
"anotherBeanSet=" + anotherBeanSet +
'}';
}
}

Configuration類 和 Test類

同上一個,就不貼了

這里我們發現在setter方法上我們有一個@AutoWired,與上面不同的是,我們不會在實例化該類時就自動裝配:wrench:這個對象,而是在顯式調用setter的時候去裝配。

通過屬性去注入Bean

我們前面兩種注入的方式諸如時間不同,并且代碼較多,若是通過屬性,即就是

@Component
public class MyBeanProperty {

@Autowired
private AnotherBean anotherBeanProperty;

@Override
public String toString() {
return "MyBeanProperty{" +
"anotherBeanProperty=" + anotherBeanProperty +
'}';
}
}

這里我們可以看到我們這個類中需要使用AnotherBean這個實例對象,我們可以通過@AutoWired去自動裝配它。

通過List注入Bean

MyBeanList類

@Component
public class MyBeanList {

private List<String> stringList;

@Autowired
public void setStringList(List<String> stringList) {
this.stringList = stringList;
}

public List<String> getStringList() {
return stringList;
}
}

MyConfiguration類

@Configuration
@ComponentScan("annoBean.annotationbean")
public class MyConfiguration {

@Bean
public List<String> stringList(){
List<String> stringList = new ArrayList<String>();
stringList.add("List-1");
stringList.add("List-2");
return stringList;
}
}

這里我們將MyBeanList進行了注入,對List中的元素會逐一注入。

MyConfiguration類

@Bean
//通過該注解設定Bean注入的優先級,不一定連續數字
@Order(34)
public String string1(){
return "String-1";
}

@Bean
@Order(14)
public String string2(){
return "String-2";
}

注入與List中泛型一樣的類型,會自動去匹配類型,及時這里沒有任何List的感覺,只是String的類型,但他會去通過List的Bean的方式去注入。

通過Map去注入Bean

@Component
public class MyBeanMap {

private Map<String,Integer> integerMap;

public Map<String, Integer> getIntegerMap() {
return integerMap;
}

@Autowired
public void setIntegerMap(Map<String, Integer> integerMap) {
this.integerMap = integerMap;
}
}
@Bean
public Map<String,Integer> integerMap(){
Map<String,Integer> integerMap = new HashMap<String, Integer>();
integerMap.put("map-1",1);
integerMap.put("map-2",2);
return integerMap;
}

@Bean
public Integer integer1(){
return 1;
}

@Bean
public Integer integer2(){
return 2;
}

同樣這里也具有兩種方式去注入Map類型Bean,且第二種的優先值高于第一種

以上就是Bean通過注解注入的幾種方式,大家可以對比著xml注入的方式去看。

責任編輯:未麗燕 來源: 今日頭條
相關推薦

2024-12-26 16:03:29

2021-01-05 09:25:35

SQL優化查詢

2022-10-10 14:41:44

RedisJVM數據

2025-08-08 09:31:38

2023-03-08 09:59:39

SpringBean注入

2024-01-23 08:47:13

BeanSpring加載方式

2012-07-17 09:16:16

SpringSSH

2025-11-17 07:45:45

SpringBean接口

2023-01-13 07:41:20

BeanSpring容器

2023-01-30 22:10:12

BeanSpring容器

2009-07-20 15:08:41

Spring實例化Be

2023-10-07 08:35:07

依賴注入Spring

2024-07-31 11:26:05

反射BeanXML

2023-04-08 14:22:16

Spring初始化對象

2021-10-26 00:01:59

Spring方式代碼

2025-03-11 09:00:00

Spring依賴注入Java

2011-06-03 11:53:06

Spring接口

2009-09-08 15:22:20

Spring依賴注入

2023-07-26 00:43:31

2023-07-11 09:14:12

Beanquarkus
點贊
收藏

51CTO技術棧公眾號

国产精品成人无码| 高潮毛片无遮挡| 牛牛热在线视频| 麻豆免费看一区二区三区| 久久中文精品视频| 亚洲色偷偷色噜噜狠狠99网| 成人在线视频播放| 又紧又大又爽精品一区二区| 久久一区二区精品| 国产又爽又黄免费软件| 亚洲黄色免费| 久久九九国产精品怡红院| 亚洲香蕉中文网| 精品久久在线| 欧美日韩国产中文字幕| 亚洲国产精品影视| 欧美69xxxxx| 国产成人免费视频| 国产精品久在线观看| 国产亚洲精品成人| 成人直播大秀| 日韩高清有码在线| 欧美体内she精高潮| 三级成人黄色影院| 亚洲成人自拍一区| 四虎精品欧美一区二区免费| 国产精品秘入口| 不卡视频一二三| 91久久精品国产91性色| www.com亚洲| 中文精品视频| 久久91超碰青草是什么| 国产免费一区二区三区四区| 视频一区在线观看| 日韩av最新在线观看| 日韩精品视频一二三| 欧美日韩美女| 欧美日韩视频在线| 精品丰满人妻无套内射| 最新av在线播放| 国产精品国产三级国产三级人妇| 久久综合九色综合网站| 蜜臀久久99精品久久久| 国产精品伊人色| 91九色在线视频| 怡红院男人的天堂| 琪琪一区二区三区| 国产精品v日韩精品| 亚洲天堂男人av| 久久av最新网址| 97视频在线观看视频免费视频| 精品99久久久久成人网站免费| 91影院成人| 日韩在线小视频| 国产日产在线观看| 久久国产亚洲精品| 日韩在线国产精品| 艳妇荡乳欲伦69影片| 亚洲澳门在线| 久热精品视频在线免费观看 | 日日夜夜综合| 欧美日韩在线亚洲一区蜜芽| 一区二区三区网址| 欧美亚洲黄色| 日韩一区二区三区精品视频| 中文字幕久久久久久久| 亚洲成人影音| 亚洲国产另类 国产精品国产免费| 亚洲v在线观看| 久久亚洲道色| 亚洲欧洲午夜一线一品| 亚洲自拍偷拍图| 久久中文字幕av| 欧美xxxx做受欧美.88| 青青草手机在线视频| 极品av少妇一区二区| 1769国产精品| 日韩精品在线一区二区三区| 久久69国产一区二区蜜臀| 亚洲free嫩bbb| 日本人妻熟妇久久久久久| 91麻豆蜜桃一区二区三区| 色播亚洲视频在线观看| 美女羞羞视频在线观看| 亚洲一区二区三区四区五区中文 | 精品伦理一区二区三区| 九一国产在线| 亚洲欧美日韩综合aⅴ视频| 日韩精品一区二区免费| 卡通欧美亚洲| 91精品国产综合久久精品| 国产精品成人99一区无码| 国色天香久久精品国产一区| 亚洲国产精品久久久久秋霞蜜臀| 日韩人妻无码一区二区三区| 91亚洲国产| 97av在线影院| 国产精品特级毛片一区二区三区| 国产成人免费xxxxxxxx| 日本中文不卡| 日本天码aⅴ片在线电影网站| 色综合色综合色综合色综合色综合| 亚洲免费一级视频| 精品精品国产毛片在线看| 在线视频欧美日韩| 日韩av一区二区在线播放| 日本女优在线视频一区二区| 国产精品久久久久久免费观看| 黄色av网站在线| 亚洲一区二区三区视频在线| 国产又大又黄又粗的视频| 97久久综合精品久久久综合| 中文字幕精品av| 国产成人精品a视频一区| 久久精品国产网站| 久久综合九色99| 国产深夜视频在线观看| 正在播放一区二区| 亚洲成人黄色av| 激情亚洲网站| 亚洲一区二区少妇| av电影在线观看| 欧美日韩视频免费播放| 无码国产精品一区二区免费式直播 | 国产欧美在线| 51国产成人精品午夜福中文下载| 裸体xxxx视频在线| 婷婷丁香久久五月婷婷| 国产一级二级av| 99久久精品费精品国产| 国产福利精品av综合导导航| 在线观看xxx| 亚洲国产成人av| 伦伦影院午夜理论片| 日韩精品二区| 国产精品久久久久久av| 神马久久精品| 欧美日韩精品一区二区视频| 久久久久日韩精品久久久男男| 91丨九色丨蝌蚪丨对白| 国产欧美日韩亚州综合| 国产精品第12页| 日韩三级av| 97精品在线视频| 丰满人妻一区二区三区无码av| 亚洲人吸女人奶水| 玖玖爱视频在线| 日韩在线观看| 91精品国产综合久久久久久久久| 成年午夜在线| 欧美在线不卡视频| 欧洲性xxxx| 久久精品国产99| 在线观看欧美激情| 成人免费91| 久久久久99精品久久久久| 国产人妖一区二区| 一区二区三区高清不卡| 国产精品久久久久久亚洲av| 亚洲精品1234| 免费成人av网站| 国产精品迅雷| 在线观看国产精品91| 亚洲天堂aaa| 亚洲人成在线观看一区二区| 香蕉视频色在线观看| 欧美另类视频| 精品无人乱码一区二区三区的优势 | 欧美日韩直播| 日本道色综合久久影院| a√资源在线| 91麻豆精品国产91久久久 | 久久久久国产免费| 在线不卡欧美| 欧美二区三区在线| 国产精品第一| 欧美美女操人视频| 五月天丁香视频| 91黄色免费观看| 91久久国产综合| 成人久久18免费网站麻豆| 99热成人精品热久久66| 色天天久久综合婷婷女18| 91黄在线观看| 国产精品专区免费| 欧美成人精品三级在线观看 | 亚洲国产91视频| 欧美高清一级大片| 国外av在线| 日韩一区二区免费视频| wwwxxx亚洲| 中文字幕中文乱码欧美一区二区| 男人添女人荫蒂国产| 久久国产精品久久w女人spa| 正在播放91九色| 欧美日韩看看2015永久免费 | 欧美激情一区二区三区久久久 | 久久精品人人做| 日韩高清在线一区二区| 亚洲一区二区三区高清| 在线观看一区欧美| 久久影院资源站| 成人黄色免费片| 中文字幕乱码在线播放| 久久久黄色av| 国产一二三区在线| 精品国产百合女同互慰| 亚洲专区第一页| 欧美日韩国产精品一区| av激情在线观看| 国产欧美综合色| 天堂www中文在线资源| 九九九久久久精品| 久章草在线视频| 欧美网站在线| 久久久一二三四| 美女久久久久| 国产一区二区三区黄| 香蕉久久久久久| 日韩av成人在线| 国产在线美女| 欧美日产国产成人免费图片| 欧美午夜电影一区二区三区| 精品亚洲一区二区三区| 亚洲精品视频91| 欧美一区二区视频网站| 中文字幕在线视频第一页| 色综合天天综合网国产成人综合天| 久久久无码一区二区三区| 椎名由奈av一区二区三区| 女人十八毛片嫩草av| 91在线观看污| 亚洲の无码国产の无码步美| 国产精品亚洲人在线观看| 亚洲欧美日韩一级| 日本免费在线视频不卡一不卡二| 国产精品亚洲a| 亚洲欧美春色| 久久精品国产精品亚洲色婷婷| 在线精品福利| 超碰成人免费在线| 亚洲精品1234| 毛片在线视频播放| 国产欧美精品| 中国丰满人妻videoshd| 国产亚洲精品久久久久婷婷瑜伽| 青青草精品视频在线| 亚洲经典三级| 国产精品宾馆在线精品酒店| 亚洲免费网站| 国产成人亚洲精品无码h在线| 亚洲少妇诱惑| 老头吃奶性行交视频| 日韩av中文字幕一区二区三区| 99精品免费在线观看| 天堂午夜影视日韩欧美一区二区| 成人久久久久久久久| 日韩精彩视频在线观看| 亚洲欧美自偷自拍另类| 精品一区二区三区在线播放 | 妺妺窝人体色777777| 99精品国产99久久久久久福利| 3d动漫一区二区三区| 亚洲制服av| 亚洲不卡视频在线| 黑人巨大精品欧美一区| 性生交大片免费看l| 成人av在线资源网站| 玖玖爱在线观看| 欧美国产亚洲另类动漫| 羞羞在线观看视频| 亚洲精品久久嫩草网站秘色| 日本五十熟hd丰满| 色综合久久88色综合天天免费| 亚洲婷婷久久综合| 91精品久久久久久久91蜜桃| 亚洲美女性生活| 亚洲欧美日韩一区在线| 草草影院在线观看| 欧美日韩国产成人| 色尼玛亚洲综合影院| 91精品久久久久久久久久另类| 99精品国产高清一区二区麻豆| 久久天天狠狠| 久久久久国产| 一本大道熟女人妻中文字幕在线| 日本成人中文字幕在线视频| 人妻精品久久久久中文字幕69| 97精品国产97久久久久久久久久久久 | 成人午夜视频在线观看免费| 久久精品亚洲| 宇都宫紫苑在线播放| 久久久亚洲午夜电影| 成年人网站在线观看视频| 黄色一区二区在线观看| 一区二区三区黄色片| 亚洲国产成人久久综合一区| 在线激情小视频| 午夜精品久久久久久久久久久久| 99精品国自产在线| 国产精品久久久对白| 欧美wwwww| 欧美视频在线播放一区| 国产麻豆成人精品| 日本精品在线观看视频| 亚洲高清视频在线| 国产精品久久影视| 亚洲免费av电影| 狂野欧美激情性xxxx欧美| 国产精品日韩av| 亚洲宅男网av| 91.com在线| 麻豆一区二区在线| 波多野结衣 在线| 五月激情六月综合| 性生活免费网站| 北条麻妃99精品青青久久| 伊伊综合在线| 国产三级精品在线不卡| 欧美a级在线| 色播五月激情五月| 国产欧美视频一区二区| 免费看日韩毛片| 欧美成人乱码一区二区三区| 乱人伦中文视频在线| 国产精品日韩在线一区| 一区二区三区视频免费观看| 人妻av无码专区| 丰满少妇久久久久久久| 欧美精品成人久久| 4438x亚洲最大成人网| 97超碰人人在线| 国产成人在线一区| 国产99久久精品一区二区300| 国模无码视频一区二区三区| 成熟亚洲日本毛茸茸凸凹| 免费在线观看一级片| 91精品国产一区二区三区蜜臀| 超碰免费在线观看| 国产精品女视频| 日韩av在线中文字幕| 91在线视频观看免费| 国产亚洲1区2区3区| 亚洲国产成人精品女人久久| 亚洲欧美日韩国产中文| 中文字幕人成乱码在线观看| 欧美极品一区| 久久精品女人天堂| 亚洲第一综合网| 欧美系列一区二区| 国产youjizz在线| 国产精品天天狠天天看| 97欧美在线视频| 欧美一级小视频| 亚洲精品免费在线观看| 国产99久久九九精品无码免费| 久久中文字幕在线视频| 精品一区二区三区中文字幕在线| av动漫在线播放| 丁香激情综合国产| 国产福利拍拍拍| 亚洲欧美中文日韩在线v日本| 欧美一级大片| 一区精品视频| 国产成人自拍在线| 国产精品一区二区6| 亚洲人免费视频| 日韩精品第二页| 乱熟女高潮一区二区在线| gogogo免费视频观看亚洲一| 黄色一级片免费在线观看| 亚洲天天在线日亚洲洲精| 日韩美女在线| 久草视频这里只有精品| 久久夜色精品一区| 中文字幕一区二区三区四区视频 | 欧美成人aaa片一区国产精品| 亚洲成人网在线观看| 成人爱爱网址| 在线电影看在线一区二区三区| 国产精品亚洲成人| 69国产精品视频免费观看| 日韩亚洲欧美中文高清在线| 最新国产一区二区| 中文字幕无码不卡免费视频| 一区在线中文字幕| 天天射,天天干| 国产中文字幕亚洲| 亚洲激情在线| 日本激情视频一区二区三区| 亚洲国产91色在线| 欧美videos粗暴| 色欲色香天天天综合网www| 中文幕一区二区三区久久蜜桃| 精品久久久免费视频| 国产精品1234| 精品电影一区| 日本女人性生活视频| 日韩精品视频在线播放| 亚洲老司机网|