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 可以启用自动配置报告

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

上一篇:Eclipse中查看没有源码的Class文件的方法


下一篇:Eclipse Some projects cannot be imported because they already exist in the workspace 解决办法