SpringBoot 核心注解及启动过程
2020-03-13 18:34
375 查看
一、SpringBoot核心注解及其作用
@SpringBootConfiguration
声明为配置类(根配置类,首先扫描该类,本身是一个IOC容器的配置类),将当前类内声明的一个或多个以@Bean注解标记的方法的实例纳入到spring容器中,并且实例名就是方法名。
SpringBoot使用Java Config技术进行配置,Java Config使用注解和Java代码的方式代替xml配置文件
- 任何一个标注了@Configuration的Java类定义都是一个JavaConfig配置类。
- 任何一个标注了@Bean的方法,其返回值将作为一个bean定义注册到Spring的IoC容器,方法名将默认成该bean定义的id。
@ComponentScan
自动扫描当前包及子包下被@Component,@Controller,@Service,@Repository注解标记的类,将其作为bean加载到IOC容器中。
不指定范围则默认从注解所在类的包下进行扫描。
@EnableAutoConfiguration
核心注解,是自动配置的入口,SpringBoot根据添加的jar包来进行项目的默认配置
二、SpringBoot自动配置如何实现
- @EnableAutoConfiguration是实现自动配置的入口
- 该注解又通过@Import注解完成导入配置的功能,导入了AutoConfigurationImportSelector,这是一个自动配置文件收集器
- 该类中的selectImports()方法内部使用SpringFactoriesLoader.loadFactoryNames()方法进行扫描具有META-INF/spring.factories文件的jar包,返回类全名经过滤后返回一个类全名的数组
- 返回的类全名通过反射被实例化,就形成了具体的工厂实例
- 工厂实例来生成组件具体需要的bean,加载到IOC容器中
spring.factories文件 - 该文件中定义了关于配置类的初始化,监听器等信息,并使用EnableAutoConfiguration使自动配置生效
- EnableAutoConfiguration中配置了多个自动配置相关类,在启动过程中会解析对应类配置信息
- 每个Configuation类都定义了相关bean的实例化配置,使用@Conditonal注解声明自动配置的条件
三、SpringBoot的启动过程
- 首先进入run方法,在run方法中创建一个SpringApplication实例,在构造方法内调用了初始化的initialize方法(创建监听器,加载springboot配置环境)
- 执行run方法创建Spring容器
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- spring boot注解及启动过程
- Spring Boot 核心注解
- springboot启动过程
- Spring Boot 2.x 启动全过程源码分析(上)入口类剖析
- Spring Boot2.0之注解方式启动Springmvc
- Spring Boot启动过程源码分析(二)事件监听器
- Spring启动后扫描解析注解的过程
- 深入讲解spring boot中servlet的启动过程与原理
- spring-boot启动注解@EnableAutoConfiguration
- SpringBoot整个启动过程的分析
- 详解spring注解配置启动过程_java
- Spring Boot 核心注解与配置文件
- Spring Boot之AOP配自定义注解的最佳实践过程
- spring boot启动过程
- SpringBoot 应用程序启动过程探秘
- 有关Spring Boot最核心注解,你知道多少呢?
- SpringBoot启动过程分析
- 读懂这些spring boot的核心注解,快速配置完成项目搭建
- SpringBoot 核心注解解析
- SpringBoot应用启动过程分析