ye_yuxuan 2020-06-17 10:31 采纳率: 0%
浏览 325

关于@EnableAutoConfiguration注解的疑问

@SpringBootApplication这个组合注解中有三个主要的注解:@SpringBootConfiguration、@EnableAutoConfiguration和@ComponentScan。
其中@EnableAutoConfiguration注解中有@AutoConfigurationPackage注解,作用是将主程序类所在包及所有子包下的组件到扫描到spring容器中。
而@ComponentScan注解没有参数的情况下,会扫描该类所在包及全部子包下的@Component。
感觉两个的扫描是否重复或覆盖了,为什么@SpringBootApplication组合注解需要包含@ComponentScan呢?

  • 写回答

1条回答 默认 最新

  • Timor_D 2020-06-17 11:02
    关注

    1,两者虽然都能将带有注解的对象放入ioc容器中,但是它们扫描的范围是不一样的。@ComponentScan扫描的范围默认是它所在的包以及子包中所有带有注解的对象,@EnableAutoConfiguration扫描的范围默认是它所在类。
    2.它们作用的对象不一样,@EnableAutoConfiguration除了扫描本类带有的注解外,还会 借助@Import的支持,收集和注册依赖包中相关的bean定义,将这些bean注入到ioc容器中,在springboot中注入的bean有两部分组成,一部分是自己在代码中写的标注有@Controller,@service,@Respority等注解的业务bean,这一部分bean就由@ComponentScan将它们加入到ioc容器中,还有一部分是springboot自带的相关bean,可以将这部分bean看成是工具bean,这部分bean就是由@EnableAutoConfiguration负责加入到容器中。
    3.@EnableAutoConfiguration可以单独启动springboot项目,而@ComponentScan是不能的。

    评论

报告相同问题?

悬赏问题

  • ¥15 2024-五一综合模拟赛
  • ¥15 如何将下列的“无限压缩存储器”设计出来
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口