springboot 启动类注解 @SpringBootApplication 和 @ComponentScan 的问题

启动类注解 @SpringBootApplication 其实就包含了 @ComponentScan 注解,

所以这两者不能同时用,如果同时用了,@SpringBootApplication 注解自带的 @ComponentScan 注解就不生效了,

这样会导致启动类所在的包,除了被自己加的这个 @ComponentScan 关联的会映射到,原本的反而都映射不到了,

导致访问 api 可能出现 404 ,所以如果一定要同时用,只能使用  @ComponentScans(注意,这个是加了 “s” 的),

springboot 这些注解很奇怪,@SpringBootApplication 和  一个 @ComponentScan 一起用不行,但是和多个  @ComponentScan 一起用就可以了,

你可以多写几个  @ComponentScan,也可以直接用  @ComponentScans 

 @ComponentScans 的写法,如下:

@SpringBootApplication
@ComponentScans({@ComponentScan("com.xxx")})


使用多个时:
@ComponentScans({@ComponentScan("com.xxx1"),@ComponentScan("com.xxx2")})
原文地址:https://www.cnblogs.com/xuehuashanghe/p/15271710.html