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

springcloud 系列之 feign 熔断 fallback 问题_第1张图片

 然后我将日志级别设置为debug

springcloud 系列之 feign 熔断 fallback 问题_第2张图片

 在控制台输出的日志中的确没有找到这个bean 

springcloud 系列之 feign 熔断 fallback 问题_第3张图片

但是我的feign 的确是扫描了 , 为什么没有呢 ?

springcloud 系列之 feign 熔断 fallback 问题_第4张图片

我的熔断回调当中也有了这个类呀这个就很奇怪了

springcloud 系列之 feign 熔断 fallback 问题_第5张图片

最后问题出在这里  @Component 需要spring注入到容器当中 , 但是我没有使用@SpringBootApplication去扫描 , 导致没有加载  AuthApiFallback 这个类到容器当中 ,所以注入失败了 。

之所以使用这样的分包的扫描方式 是为了粒度更系 当然也可以使用  

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

这样扫描一次就好了

这个时候能看到 已经加载了这个bean spring已经注入了

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

 

你可能感兴趣的:(JAVA,springboot)