我在自己的springboot
项目中的启动类上同时使用了@SprinBootApplication
和@ComponentScan
注解, 虽然项目能够正常启动,但是访问资源后,返回404错误,随后在启动类中输出bean
,发现controller
创建失败:


而后我将@ComponentScan
去掉后资源就能访问到了.
原因
-
@SprinBootApplication
本身包含了@ComponentScan
注解, -
当在
@ComponentScan
中指定了basePackages
后,会覆盖@SpringBootApplication
默认的扫描路径,可能导致Bean
加载错误 -
同时使用这两个注解可能会使扫描范围发生改变。比如指定的
basePackages
参数和默认扫描路径不一致,可能导致部分自动装配的Bean
没有被扫描到,出现bean
创建失败或其他错误。