boot自动配置的原理
spring boot启动会加载大量的自动配置类:(在下面的spring.factories文件中)通过@ConditionalOnXXX判断我们是否导入了相关的功能(就是pom文件中的starter),如果导入了,就会自动配置。
首先打开一个基本的springboot项目,点进去@SpringBootApplication注解。
实际上,自动精简配置的工作原理与部分储备金体系的原理相似,银行无需一次支付所有的储备金,因此也没有人一次动用所有的存储资源。
SpringBoot是Spring的包装,通过自动配置使得SpringBoot可以做到开箱即用,上手成本非常低,但是学习其实现原理的成本大大增加,需要先了解熟悉Spring原理。
SpringBoot运行原理
1、springboot-boot-starter-xxx:spring-boot的场景启动器 spring-boot-starter-web:帮我们导入了web模块正常运行所依赖的组件。
2、配置 spring.factories ,通过该配置,才能让springboot来自动加载我们的Configuration类。具体原理我们稍后深入了解。具体的,是在模块的 resources/META-INF 目录下,新建 spring.factories 文件。
3、springboot帮我们做的两件事,一个是通过starter引入我们需要的框架,starter负责引入自己的依赖;另一个是通过autoconfigure生效一些默认的配置,简化我们的使用,这一步是通过spring.factories中定义的配置类实现的。
4、首先打开一个基本的springboot项目,点进去@SpringBootApplication注解。
5、Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。
6、同时,我试了下,直接运行application类的话,是找不到主类的:因为在文件目录中,JarlearnApplication实际上是在META-INF/maven/... 中的,所以会找不到。
SpringBoot自动配置的原理及实现/SpringBoot之@Import注解正确使用...
了解SpringBoot之@Import注解正确使用方式 SpringBoot 的核心就是自动配置,自动配置又是基于条件判断来配置 Bean。
@EnableAutoConfiguration可以帮助SpringBoot应用将所有符合条件的@Configuration配置都加载到当前SpringBoot创建并使用的IoC容器。
SpringBoot启动的时候加载主配置类,开启了自动配置功能@EnableAutoConfiguration。请点击输入图片描述 EnableAutoConfiguration的作用是利用AutoConfigurationImportSelector给容器中导入一些组件。
SpringBoot的自动装配是指:SpringBoot会自动将一些配置类的bean注册到ioc容器,我们可以在需要的地方使用@Autowired或@Resource等注解来使用它。