日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

Spring的 @Autowired注解底層原理

作者:Ran959 更新時間: 2022-09-05 編程語言

前言


使用 Spring 開發時,進行配置主要有兩種方式,一是 xml 的方式,二是 Java config 的方式。Spring 技術自身也在不斷的發展和改變,從當前 Springboot 的火熱程度來看,Java config 的應用是越來越廣泛了,在使用 Java config 的過程當中,我們不可避免的會有各種各樣的注解打交道,其中,我們使用最多的注解應該就是 @Autowired 注解了。

@Autowired 注解的作用

首先,我們從所屬范圍來看,事實上這個注解是屬于 Spring 的容器配置的一個注解,與它同屬容器配置的注解還有:@Required, @Primary, @Qualifier 等等。因此 @Autowired 注解是一個用于容器(container)配置的注解。

其次,我們可以直接從字面意思來看,@autowired 注解來源于英文單詞 autowire,這個單詞的意思是自動裝配的意思。自動裝配又是什么意思?這個詞語本來的意思是指的一些工業上的用機器代替人口,自動將一些需要完成的組裝任務,或者別的一些任務完成。而在 Spring 的世界當中,自動裝配指的就是使用將 Spring 容器中的 bean 自動的和我們需要這個 bean 的類組裝在一起。

因此,筆者個人對這個注解的作用下的定義就是:將 Spring 容器中的 bean 自動的和我們需要這個 bean 的類組裝在一起協同使用。

@Autowired 注解的實現

下面是 Spring 容器如何實現 @AutoWired 自動注入的過程的圖:

?注解實現注入主要是通過 bean 后置處理器 BeanPostProcessor 接口的實現類來生效的。BeanPostProcessor 后置處理器是在 spring 容器啟動時,創建 bean 對象實例后,馬上執行的,對 bean 對象實例進行加工處理。@Autowired 是通過 BeanPostProcessor 接口的實現類AutowiredAnnotationBeanPostProcessor 來實現對 bean 對象對其他 bean 對象的依賴注入的。
?

總結起來一句話:使用 @Autowired 注入的 bean 對于目標類來說,從代碼結構上來講也就是一個普通的成員變量,@Autowired 和 Spring 一起工作,通過反射為這個成員變量賦值,也就是將其賦為期望的類實例。?

原文鏈接:https://blog.csdn.net/weixin_67588007/article/details/125966649

欄目分類
最近更新