注入jar包里的對象,用@autowired的實例
注入的jar包如果不能直接使用 @autowired 來使用,可以采用如下方法:
@Configuration public class DemoConfiguration { @Bean public Demo demo() { return new Demo(); //該對象為Jar包對象 } }
補充知識:引入第三方包 @Autowired Spring注入失敗解決方案
一、問題背景
開發(fā)工程中,我負責(zé)的微服務(wù)需要依賴中臺服務(wù)層,在調(diào)用該服務(wù)的功能接口時,@Autowired 注入方式啟動報錯:
Description:
Field clientRouter in com.baiwang.cloud.spush.client.SPushClient required a bean of type 'com.baiwang.cloud.spush.client.router.IClientRouter' that could not be found.
Action:
Consider defining a bean of type 'com.baiwang.cloud.spush.client.router.IClientRouter' in your configuration.
二、問題解決
1、@ComponentScan用來指定掃描的組建所在的包路徑或class文件。在不指定參數(shù)的時候,SpringBoot的@ComponentScan默認(rèn)會掃描同目錄及同目錄下級目錄的類文件。所以,Spring注入第三方包,需要通過@ComponentScan 掃描需要注入的包。
第一個包名是當(dāng)前服務(wù)的頂層目錄包,第二個是依賴的第三方包已經(jīng)成功注入。既然已經(jīng)可以使用,所以我就模仿著添加了注入的包。
2、注入了新的包之后,啟動依然報了錯
同樣的錯誤,根據(jù)錯誤我又找到對應(yīng)的類,發(fā)現(xiàn)了上邊掃描的路徑只是interface層
于是我找到了實現(xiàn)的service層的包路徑,同樣注入了進去
這次啟動又報了另一個錯誤
3、Field redisTemplate in com.baiwang.media.basic.cache.config.RedisConfig required a single bean, but 2 were found:
這個錯誤根據(jù)提示仔細想了想,應(yīng)該就可以定位到了,RedisConfig這個類注入了RedisTemplate,Redis這個類使用頻率還是挺多的,還有@Autowired是按照類型來注入的,所以上邊掃描的包RedisTemplate這個類型存了兩份。
由問題找問題,基礎(chǔ)不牢固就要全部靠百度。@Qualifier @Primary這兩個注解,@Qualifier注解的用處:當(dāng)一個接口有多個實現(xiàn)的時候,為了指名具體調(diào)用哪個類的實現(xiàn),可以指定名稱,以名稱的方式注入。用@Primary注解的Bean就要優(yōu)先于其他的Bean,更多應(yīng)用的是Service,這里使用@Qualifier就可以了
最后不出所料,成功啟動!
三、最后
這樣的掃描方式會顯得很冗余,就簡化了注入的包的頂層目錄。
最后就是這樣了,同樣也要檢查其他類型的注入是不是也會沖突?。。?/p>
還有,依賴第三方注入還需要這個:
以上這篇注入jar包里的對象,用@autowired的實例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
easyexcel讀取excel合并單元格數(shù)據(jù)的操作代碼
這篇文章主要介紹了easyexcel讀取excel合并單元格數(shù)據(jù)的操作代碼,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-05-05Mybatis 動態(tài)表名+Map參數(shù)傳遞+批量操作詳解
這篇文章主要介紹了Mybatis 動態(tài)表名+Map參數(shù)傳遞+批量操作詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-12-12Spring Cloud Gateway重試機制的實現(xiàn)
這篇文章主要介紹了Spring Cloud Gateway重試機制的實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-03-03java中進程與線程_三種實現(xiàn)方式總結(jié)(必看篇)
下面小編就為大家?guī)硪黄猨ava中進程與線程_三種實現(xiàn)方式總結(jié)(必看篇)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-06-06@ConfigurationProperties加載外部配置方式
這篇文章主要介紹了@ConfigurationProperties加載外部配置方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-03-03