文
章
目
录
章
目
录
Java面试题:说下Spring Boot的自动装配概念与流程
得分点:
自动装配概念, 自动装配流程
标准回答:
使用Spring Boot时,我们需要引入对应的Starters。SpringBoot启动时便会自动加载相关依赖,配置相应的初始化参数,以最快捷、简单的形式对第三方软件进行集成,这便是Spring Boot的自动配置功能。
整个自动装配的过程是:Spring Boot通过@EnableAutoConfiguration注解开启自动配置,加载spring.factories中注册的各种AutoConfiguration类。当某个AutoConfiguration类满足其注解@Conditional指定的生效条件(Starters提供的依赖、配置或Spring容器中是否存在某个Bean等)时,实例化该AutoConfiguration类中定义的Bean(组件等),并注入Spring容器,就可以完成依赖框架的自动配置。
加分回答
@EnableAutoConfiguration 作用: 从classpath中搜索所有META-INF/spring.factories配置文件,然后将其中org.springframework.boot.autoconfigure.EnableAutoConfiguration key对应的配置项加载到spring容器。只有spring.boot.enableautoconfiguration为true(默认为true)的时候,才启用自动配置。@EnableAutoConfiguration还可以根据class来排除(exclude),或是根据class name(excludeName)来排除。
其内部实现的关键点有:
- ImportSelector:该接口的方法的返回值都会被纳入到spring容器管理中。
- SpringFactoriesLoader:该类可以从classpath中搜索所有META-INF/spring.factories配置文件,并读取配置。