SpringBoot中的自動(dòng)注入方式
字段注入在spring 3.0 已經(jīng)被官方列入為不推薦使用
項(xiàng)目集成:Lombok、Spring Boot
方式一:使用 [ Lombok ]的[ @RequiredArgsConstructor ]進(jìn)行構(gòu)造器注入
@RequiredArgsConstructor
[SpringBoot] 運(yùn)行結(jié)果
注意事項(xiàng) ??! 該注解只會(huì)對(duì) [final] 修飾符的字段進(jìn)行注入
以下是編譯以后的 .java 代碼,可以看到注解幫我們生成了一個(gè)構(gòu)造器,并且spring 會(huì)為構(gòu)造器自動(dòng)注入
總結(jié):
final 修飾符的字段使用 lombok 可以幫助生成構(gòu)造器,spring 會(huì)為構(gòu)造器所有的屬性注入
方式二:使用 [ Lombok ] 的 [ @Setter ] 進(jìn)行注入
使用注解在生成 se方法的時(shí)候添加注入注解
@Setter(onMethod = @__(@Autowired))
注意事項(xiàng) ??! 不會(huì)對(duì) [ final ] 修飾符的字段生成方法
反編譯后代碼
總結(jié):
[ Lombok ] 的 [ @Setter ] 注解可以指定在生成時(shí)加入指定注解
方式三:使用 [ Lombok ] 的 [ @Setter ] 注解按字段名字注入
1、準(zhǔn)備一個(gè) OK 接口和兩個(gè)實(shí)現(xiàn)類
OK 接口
實(shí)現(xiàn)類 1
實(shí)現(xiàn)類 2
調(diào)用者
@Autowired 替換為 @Resource
1、@Autowired 是按照類型查找
2、@Resource 先是按Bean名字查找,如果Bean沒(méi)有名字則使用字段名字 (即變量名) 查找,都沒(méi)有找到的話會(huì)按類型查找
調(diào)用結(jié)果
總結(jié):
多個(gè)實(shí)現(xiàn)類可以使用@Resorce 按名字查找
思考
字段注入上 @Autowired 或者 @Resorce 真的不會(huì)很冗余嗎?
或許我們應(yīng)該拋棄字段注入多寫一些注釋在字段上面,讓后來(lái)者知道為什么要注入某類去做某事。
最后
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java給JFrame窗口設(shè)置熱鍵的方法實(shí)現(xiàn)
這篇文章主要介紹了Java給JFrame窗口設(shè)置熱鍵的方法實(shí)現(xiàn),文中通過(guò)示例代碼以及圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07Spring?Boot中使用Swagger3.0.0版本構(gòu)建RESTful?APIs的方法
Swagger?是一個(gè)規(guī)范和完整的框架,用于生成、描述、調(diào)用和可視化?RESTful?風(fēng)格的?Web?服務(wù),這篇文章主要介紹了Spring?Boot中使用Swagger3.0.0版本構(gòu)建RESTful?APIs的方法,需要的朋友可以參考下2022-11-11java之使用多線程代替for循環(huán)(解決主線程提前結(jié)束問(wèn)題)
這篇文章主要介紹了java之使用多線程代替for循環(huán)(解決主線程提前結(jié)束問(wèn)題),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03