springcloud 系列之 feign 熔斷 fallback 問題

 springcloud feign 啓動的時候 報錯

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userController': Unsatisfied dependency expressed through field 'authApi'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'conlon.cloud.api.connect.AuthApi': FactoryBean threw exception on object creation; nested exception is java.lang.IllegalStateException: No fallback instance of type class conlon.cloud.api.hystrix.AuthApiFallback found for feign client cloud-auth
 

這個時候很明顯是應爲我在注入 authApi 的時候 沒有找到  AuthApiFallback 這個bean

 然後我將日誌級別設置爲debug

 在控制檯輸出的日誌中的確沒有找到這個bean 

但是我的feign 的確是掃描了 , 爲什麼沒有呢 ?

我的熔斷回調當中也有了這個類呀這個就很奇怪了

最後問題出在這裏  @Component 需要spring注入到容器當中 , 但是我沒有使用@SpringBootApplication去掃描 , 導致沒有加載  AuthApiFallback 這個類到容器當中 ,所以注入失敗了 。

之所以使用這樣的分包的掃描方式 是爲了粒度更系 當然也可以使用  

@SpringBootApplication(scanBasePackages = {"conlon.cloud"})

這樣掃描一次就好了

這個時候能看到 已經加載了這個bean spring已經注入了

DEBUG o.s.b.f.s.DefaultListableBeanFactory - Creating shared instance of singleton bean 'authApiFallback'

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章