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'