網站首頁 編程語言 正文
前言
使用 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
- 上一篇:Spring 解決循環依賴
- 下一篇:淺析Servlet三大容器的常用方法及其作用域
相關推薦
- 2022-04-22 Mac環境下使用CLion調試redis 6.X源碼
- 2022-10-02 iOS簡單抽屜效果的實現方法_IOS
- 2022-10-02 基于useImperativeHandle的使用解析_React
- 2022-03-24 樹莓派搭建nas服務器的詳細過程_Linux
- 2022-04-09 SpringMVC 使用RestFul風格實現簡單的文件下載
- 2023-01-13 解決安裝torch后,torch.cuda.is_available()結果為false的問題_py
- 2022-09-26 python?opencv實現目標外接圖形_python
- 2022-07-09 springboot 視圖集成
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支