ribbonconfiguration的包一定要放在Application启动类的外面,这是spring的一个小坑
原因ribbonconfiguration是一个组合注解,上面有@Component注解,也就是说ribbonconfiguration也是一种特殊的Component,
再看Application启动类上面的注解,也是一个组合注解,其中有一个是@ComponentScan,这个注解是用来扫描@Component,@@repository,@Controller,@Component,@Service 等等这些注解都会被扫描到包括@Configuration。启动类会扫描他所在包下面的所有@Component,所以ribbonconfiguration的包一定不能放在启动类包下面。
原因是:
spring的上下文其实是一个树状的上下文,而@SpringBootApplication上下文其实是一个主上下文,而
ribbon也是一个上下文,是一个子上下文,父子上下文扫描的包一旦重叠,会导致各种各样奇葩的问题:
例如 :事务不生效
具体内容讲解:https://blog.csdn.net/qq_32588349/article/details/52097943
英文文档关于此类的讲解:(大概意思是说如果放在启动类下,会被共享成为全局的配置)
所以有两种方法,一种把ribbonconfiguration放在启动类外面,另一种就是在yml中配置
点击查看更多内容
1人点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦