最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring中@Autowired注解在不同方法的寫法示例

 更新時(shí)間:2023年01月10日 09:23:32   作者:Hoeller  
這篇文章主要為大家介紹了Spring中@Autowired注解在不同方法的寫法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

正文

今天來跟大家聊聊簡(jiǎn)單聊聊@Autowired,Autowired翻譯過來為自動(dòng)裝配,也就是自動(dòng)給Bean對(duì)象的屬性賦值。

@Target({ElementType.CONSTRUCTOR, ElementType.METHOD, 
         ElementType.PARAMETER, ElementType.FIELD, 
         ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Autowired {
	/**
	 * Declares whether the annotated dependency is required.
	 * <p>Defaults to {@code true}.
	 */
	boolean required() default true;
}

以上是@Autowired的定義,重點(diǎn)看 @Target,我們發(fā)現(xiàn)@Autowired可以寫在:

  • ElementType.CONSTRUCTOR:表示可以寫在構(gòu)造方法上
  • ElementType.METHOD:表示可以寫在普通方法上
  • ElementType.PARAMETER:表示可以寫在方法參數(shù)前
  • ElementType.FIELD:表示可以寫在屬性上
  • ElementType.ANNOTATION_TYPE:表示可以寫在其他注解上

寫在構(gòu)造方法上

對(duì)于@Autowired寫在構(gòu)造方法上的情況,跟Spring選擇構(gòu)造方法的邏輯有關(guān),一個(gè)類中是不是有多個(gè)構(gòu)造方法,是不是加了@Autowired注解,是不是有默認(rèn)構(gòu)造方法,跟構(gòu)造方法參數(shù)類型和個(gè)數(shù)都有關(guān)系,后面單獨(dú)來介紹。

寫在普通方法上

對(duì)于@Autowired寫在普通方法上的情況,我們通常寫的setter方法其實(shí)就是一個(gè)普通的setter方法,那非setter方法上加@Autowired會(huì)有作用嗎?

比如:

@Component
public class UserService {
	@Autowired
	public void test(OrderService orderService) {
		System.out.println(orderService);
	}
}

這個(gè)test方法會(huì)被Spring自動(dòng)調(diào)用到,并且能打印出OrderService對(duì)應(yīng)的Bean對(duì)象。

寫在方法參數(shù)前

把@Autowired寫在參數(shù)前沒有多大意義,只在spring-test中有去處理這種情況,源碼注釋原文:

Although @Autowired can technically be declared on individual method or constructor parameters since Spring Framework 5.0, most parts of the framework ignore such declarations. The only part of the core Spring Framework that actively supports autowired parameters is the JUnit Jupiter support in the spring-test module

寫在屬性上

這種情況不用多說了,值得注意的是,默認(rèn)情況下,因?yàn)锧Autowired中的required屬性為true,表示強(qiáng)制依賴,如果更加某個(gè)屬性找不到所依賴的Bean是不會(huì)賦null值的,而是會(huì)報(bào)錯(cuò),如果把required屬性設(shè)置為false,則會(huì)賦null值。

寫在其他注解上

比如我們可以自定義要給注解:

@Autowired
@Retention(RetentionPolicy.RUNTIME)
public @interface HoellerAutowired {
}

@HoellerAutowired和@Autowired是等價(jià)的,能用@Autowired的地方都可以用@HoellerAutowired代替。

以上就是Spring中@Autowired注解在不同方法的寫法示例的詳細(xì)內(nèi)容,更多關(guān)于Spring @Autowired注解的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Spring boot實(shí)現(xiàn)應(yīng)用打包部署的示例

    Spring boot實(shí)現(xiàn)應(yīng)用打包部署的示例

    本篇文章主要介紹了Spring boot實(shí)現(xiàn)應(yīng)用打包部署的示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-11-11
  • Spring中BeanFactory?FactoryBean和ObjectFactory的三種的區(qū)別

    Spring中BeanFactory?FactoryBean和ObjectFactory的三種的區(qū)別

    關(guān)于FactoryBean?和?BeanFactory的對(duì)比文章比較多,但是對(duì)ObjectFactory的描述就比較少,今天我們對(duì)比下這三種的區(qū)別,感興趣的朋友跟隨小編一起看看吧
    2023-01-01
  • java并發(fā)編程專題(五)----詳解(JUC)ReentrantLock

    java并發(fā)編程專題(五)----詳解(JUC)ReentrantLock

    這篇文章主要介紹了java(JUC)ReentrantLock的的相關(guān)資料,文中講解非常詳細(xì),實(shí)例代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • 基于SpringBoot實(shí)現(xiàn)代碼在線運(yùn)行工具

    基于SpringBoot實(shí)現(xiàn)代碼在線運(yùn)行工具

    這篇文章主要介紹了如何利用SpringBoot實(shí)現(xiàn)簡(jiǎn)單的代碼在線運(yùn)行工具(類似于菜鳥工具),文中的示例代碼講解詳細(xì),需要的可以參考一下
    2022-06-06
  • mybatis批量更新與插入方式

    mybatis批量更新與插入方式

    這篇文章主要介紹了mybatis批量更新與插入方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • Java正則匹配中文的方法實(shí)例分析

    Java正則匹配中文的方法實(shí)例分析

    這篇文章主要介紹了Java正則匹配中文的方法,結(jié)合實(shí)例形式分析了Java針對(duì)中文、標(biāo)點(diǎn)及引號(hào)等匹配操作相關(guān)技巧,需要的朋友可以參考下
    2017-03-03
  • spring cloud 配置中心native配置方式

    spring cloud 配置中心native配置方式

    這篇文章主要介紹了spring cloud 配置中心native配置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Java實(shí)現(xiàn)遞歸山脈

    Java實(shí)現(xiàn)遞歸山脈

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)遞歸山脈,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Java?精煉解讀遞歸的概念與使用

    Java?精煉解讀遞歸的概念與使用

    一說起遞歸,我想每個(gè)人都不陌生。舉個(gè)從小就聽過的例子:從前有座山,山里有座廟,廟里有個(gè)和尚,和尚在講故事,從前有座山,山里有座廟,廟里有個(gè)和尚,和尚在講故事,從前有座山,要理解遞歸,就得先了解什么是遞歸,實(shí)際上這句話就是一個(gè)遞歸
    2022-03-03
  • 分享令人目瞪口呆的?Java?代碼技巧

    分享令人目瞪口呆的?Java?代碼技巧

    這篇文章主要介紹了令人目瞪口呆的?Java?代碼技巧,本文從寫?Java?程序的小方面一直寫到大方面,來闡述了如何才能寫好?Java?程序,并告訴讀者們?nèi)绾尾拍芴岣咦陨淼木幋a水平,需要的朋友可以參考下
    2022-05-05

最新評(píng)論

新野县| 大宁县| 隆子县| 湟中县| 介休市| 乌拉特中旗| 阳曲县| 年辖:市辖区| 松江区| 平顶山市| 巨鹿县| 天镇县| 石屏县| 章丘市| 黄梅县| 黔江区| 隆德县| 任丘市| 高平市| 盱眙县| 仁布县| 双柏县| 潮州市| 德钦县| 祁东县| 玛多县| 改则县| 买车| 建宁县| 曲麻莱县| 乌鲁木齐县| 乌恰县| 永新县| 邓州市| 武平县| 阳谷县| 金门县| 右玉县| 淳安县| 朔州市| 静宁县|