Spring Boot自动配置类
2016-09-17 18:50
645 查看
http://docs.spring.io/spring-boot/docs/current/api/overview-summary.html
http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#auto-configuration-classes
前提
1、一般来说,xxxAware接口,都提供了一个setXxx的方法,以便于其实现类将Xxx注入自身的xxx字段中,从而进行操作。
例如 ApplicationContextAware ,就提供了 void setApplicationContext(ApplicationContext applicationContext) throws BeansException; ,从而让其实现可以直接操作 applicationContext 。
2、Spring中的 BeanFactory,这是访问bean container 的root interface。其实现类的对象通常拥有一系列 bean 定义,并以不同的String 名字来区分。
但是,官方文档不建议直接使用这种方式获取bean,而是建议使用注入的方式获取bean(@Autowire)。--这个,前期不能使用初始化注入吧?
正文
Spring Boot提供的自动配置都是位于包 org.springframework.boot.autoconfigure 之下。
注意,
① 这里是Spring Boot提供的,而非第三方(如MyBatis-Spring-Boot-Starter)提供的。
② 不包含Spring Boot Actuator部分的。
Spring Boot的自动配置类可以通过autoconfig report查看,需要开启 --debug 或 -Debug。或者在 Actuator 项目的autoconfig 端点查看。
这里先从Web开始学习
由于Spring Boot的web Starter集成了Spring MVC,而非其他,所以实际上提供的Web自动配置为Spring MVC的自动配置。
Spring MVC的自动配置在包 org.springframework.boot.autoconfigure.web 之下,该包中的内容如下:
View Code
这是个静态内部类,实现了两个接口。
4、接口ImportBeanDefinitionRegistrar
该接口用于在系统处理@Configuration class时注册更多的bean。是bean定义级别的操作,而非@Bean method/instance级别的。
这个方法,应该是在Spring加载bean时被Spring调用。
org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader
未完待续。
http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#auto-configuration-classes
前提
1、一般来说,xxxAware接口,都提供了一个setXxx的方法,以便于其实现类将Xxx注入自身的xxx字段中,从而进行操作。
例如 ApplicationContextAware ,就提供了 void setApplicationContext(ApplicationContext applicationContext) throws BeansException; ,从而让其实现可以直接操作 applicationContext 。
2、Spring中的 BeanFactory,这是访问bean container 的root interface。其实现类的对象通常拥有一系列 bean 定义,并以不同的String 名字来区分。
但是,官方文档不建议直接使用这种方式获取bean,而是建议使用注入的方式获取bean(@Autowire)。--这个,前期不能使用初始化注入吧?
正文
Spring Boot提供的自动配置都是位于包 org.springframework.boot.autoconfigure 之下。
注意,
① 这里是Spring Boot提供的,而非第三方(如MyBatis-Spring-Boot-Starter)提供的。
② 不包含Spring Boot Actuator部分的。
Spring Boot的自动配置类可以通过autoconfig report查看,需要开启 --debug 或 -Debug。或者在 Actuator 项目的autoconfig 端点查看。
这里先从Web开始学习
由于Spring Boot的web Starter集成了Spring MVC,而非其他,所以实际上提供的Web自动配置为Spring MVC的自动配置。
Spring MVC的自动配置在包 org.springframework.boot.autoconfigure.web 之下,该包中的内容如下:
public static class BeanPostProcessorsRegistrar implements ImportBeanDefinitionRegistrar, BeanFactoryAware { // ... }
View Code
这是个静态内部类,实现了两个接口。
4、接口ImportBeanDefinitionRegistrar
public interface ImportBeanDefinitionRegistrar { public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry); }
该接口用于在系统处理@Configuration class时注册更多的bean。是bean定义级别的操作,而非@Bean method/instance级别的。
这个方法,应该是在Spring加载bean时被Spring调用。
org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader
未完待续。
相关文章推荐
- 参照SpringBoot的自动配置
- 初识Spring Boot框架(二)之DIY一个Spring Boot的自动配置
- springboot Test 自动配置注解详单
- Spring Boot核心原理-自动配置
- spring boot自动配置之jdbc
- SpringBoot学习笔记(5) Spring Boot集成Redis实现自动配置
- Spring Boot核心原理-自动配置 以及@ConfigurationProperties 注解
- Idea 打包maven项目 以及spring boot 的自动配置
- 【Spring Boot】SpringBoot-自动配置源码解析
- SpringBoot学习笔记(三) SpringBoot 自动配置原理
- 学记:为spring boot写一个自动配置
- springboot webmvc 自动配置
- 初识Spring Boot框架(二)之DIY一个Spring Boot的自动配置
- 一个由于springboot自动配置所产生的问题的解决
- Spring Boot教程(二)--- 推荐的基础 POM 文件和自动配置
- Spring Boot自动配置实例
- Spring Boot自动配置详解
- 初识Spring Boot框架(二)之DIY一个Spring Boot的自动配置
- Spring boot 项目 maven的profile多环境配置 不自动替换变量的问题解决
- springboot自动配置的核心原理