为什么springboot不需要配置文件就可以启动成功。
springboot入口SpringBootApplication是一个启动类,主要的注解是以下的三个:
1、SpringBootConfiguration是一个配置类,点进去里面是一个@Configration注解,表明该类是一个配置文件类,@Configration本身也是一个@Component
2、@EnableAutoConfiguration,开启自动配置功能。
@Import注解的作用,是为了自动导入相关的配置,比如redis、mq、aqs等配置信息。
是如何进行导入的呢?AutoConfigurationImportSelector类中loadSpringFactories方法会进行资源的扫描,扫描的路径为Meta-Inf/spring.factories这个文件,这个文件在spring-boot-autoconfigure包下面
@AutoConfigurationPackage的注解见下图的注解,会扫描主类所在的包路径所有的configuration注解的类,配合import导入到spring容器中去
@ComponetScan注解的作用是为了进行组件的扫描,主要作用扫描当前包及其子包下被@Component,@Controller,@Service,@Repository注解标记的类并纳入到spring容器中进行管理。