springboot 扫描不到包 @SpringBootApplication 自动配置原理

解决方案###

  • 在main类中增加注解
  • @ComponentScan("com.test.test.*") 扫描具体的包
  • @ComponentScan(basePackages = {"com.test.test"}) 扫描父类之后的包
  • SpringBoot的启动类最好是放在root package下

原因###

@SpringBootApplication : 是Sprnig Boot项目的核心注解,目的是开启自动配置,扫描加载类信息

  • @ComponentScan
  • 功能:自动扫描并加载符合条件的组件加载到IOC容器中
  • 扫描范围:@ComponentScan所在类的package进行扫描,也就是启动类的包。basePackages属性细粒度的定制自动扫描的范围
  • @EnableAutoConfiguration
  • @AutoConfigurationPackage 导入扫描包信息
  • @Import(AutoConfigurationImportSelector.class) 扫描 spring INF-META/spring-factory 扫描需要配置的XXAutoConfiguration
  • XXAutoConfiguration类中注入组件
  • @Configuration
  • @Bean
  • @Condition 自动配置类在一定条件下生效
  • @ConfigurationProperties 映射 XXproperties类中封装了 XX的环境变量
  • 在配置文件中设置 debug = true 可以启用自动配置报告
posted @ 2020-01-14 18:41  吃个甜柚子  阅读(5013)  评论(0编辑  收藏  举报
//升天火箭