一:什么是 Spring Boot?
Spring Boot 是 Spring 开源组织下的子项目,是 Spring 组件一站式解决方案,主要是简化了使用 Spring 的难度,简省了繁重xml的配置,提供了各种启动器,在运行过程中自定配置,开发者能快速上手。
二: 想要被 Spring 容器管理的 bean 不在Spring Boot 包扫描路径下,怎么办?
(1)在 Spring Boot 主类上使用 @Import 注解
(2)使用 spring.factories 文件自动配置
三:什么是SpringBoot自动配置
SpringBoot的自动配置就是当spring容器启动后,一些自动配置类(只是自动配置类,并不是当前组件配置到IOC容器当中,自动配置类通过@Conditional注解来按需配置)就自动装配的IOC容器中,不需要我们手动去注入,从而简化了开发,省去了繁琐的配置。
四:Springboot是如何实现自动配置的?
SpringBoot通过Spring 的条件配置决定哪些bean可以被配置,将这些条件定义成具体的Configuration,然后将这些Configuration配置到spring.factories文件中,容器在启动的时候,由于使用了EnableAutoConfiguration注解,该注解Import的EnableAutoConfigurationlmportSelector会去扫描classpath下的所有spring.factories文件,然后进行bean的自动化配置
五:@SpringBootConfiguration,包含哪些注解?
@SpringBootConfiguration:标记当前类为配置类
@ComponentScan:扫描主类所在的同级包以及下级包里的Bean,项目包内的 bean
@EnableAutoConfiguration:开启自动配置
六:@EnableAutoConfiguration注解
@AutoConfigurationPackage:
将主配置类( @SpringBootApplication )所在的包及其子包里面的所有组件扫描到IOC容器中
@Import({AutoConfigurationImportSelector.class})
默认扫描我们当前系统里面所有 META-INF/spring.factories位置的文件,即 pom 文件中依赖的 bean注册到spring容器
七:如何自定义一个starter?
- 在starter项目中,创建自动配置类
- 如果你的starter需要配置属性,可以通过定义一个配置属性类来实现
- 创建配置类入口文件:在你的starter项目的src/main/resources下,创建META-INF/spring目录,并且创建一个org.springframework.boot.autoconfigure.AutoConfigurationimports文件,内容如下:cn.hollis.nft.turbo.job.config.Xx1]obConfiguration
以上就定义好了一个starter,只需要在需要的地方引入