91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

springboot如何實現增加@ComponentScan后本地bean無加載

發布時間:2021-10-19 16:50:41 來源:億速云 閱讀:168 作者:柒染 欄目:大數據

springboot如何實現增加@ComponentScan后本地bean無加載,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

1、前言

springboot需要加載jar包里的bean時,一般是使用注解@ComponentScan(basePackages = {"com.test.http", "com.test.client"})來實現,但@ComponentScan在使用時有些注意事項需要小心

2、背景

由于需要用到springcloud feign做RPC調用,需要注入client的api,因此我加了@ComponentScan掃描client所在的包路徑,結果在啟動時報錯:

Description:

Parameter 0 of method indicatorServiceApi in com.client.ServiceApiConfig required a bean of type 'feign.codec.Decoder' that could not be found.

反序列類找不到可使用對象,然后我就加了個FeignConfig加載默認的feign配置

@Configuration
@Import(FeignClientsConfiguration.class)
     public class FeignConfig {
}

再次啟動依然報同一個錯誤!

3、排查原因

從現象來看,client.ServiceApiConfig至少是在FeignConfig之前初始化的,為何不是先初始化本地么?這個還真不是

回頭看看@ComponentScan的注釋:

* <p>Either {@link #basePackageClasses} or {@link #basePackages} (or its alias
* {@link #value}) may be specified to define specific packages to scan. If specific
* packages are not defined, scanning will occur from the package of the
* class that declares this annotation.

意思是如果沒有定義packages,就從啟動類的包路徑開始。這就引含了一個意思:如果有定義,啟動類的包路徑并不會自動添加進去!

再來看看上面的問題,原來啟動類的包路徑跟api的包不一樣,導致spring只掃描了api的包路徑,當然就找不到FeignConfig配置啦!將自身的包路徑加到@ComponentScan里即可。

PS:@ComponentScan的包順序不受影響的哦??

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

黄陵县| 航空| 大新县| 保山市| 夹江县| 清镇市| 南京市| 辽中县| 玉树县| 襄樊市| 民丰县| 花垣县| 灵石县| 昌邑市| 泉州市| 简阳市| 台南市| 佛教| 阜平县| 卢湾区| 舞阳县| 南部县| 新津县| 仁怀市| 茌平县| 池州市| 游戏| 儋州市| 常熟市| 达日县| 通渭县| 沂南县| 武清区| 玉林市| 泗洪县| 桓仁| 西华县| 出国| 如东县| 遂平县| 时尚|