什么是自动装配:
spring的核心在于IOC(控制反转对于spring框架来说,就是由spring来负责控制对象的生命周期和对象间的关系)和DI(依赖注入IoC的一个重点是在系统运行中,动态的向某个对象提供它所需要的其他对象。这一点是通过DI(Dependency Injection,依赖注入)来实现的。
比如对象A需要操作数据库,以前我们总是要在A中自己编写代码来获得一个Connection对象,有了 spring我们就只需要告诉spring,A中需要一个Connection,至于这个Connection怎么构造,何时构造,A不需要知道)。而这些框架在使用的过程中会需要配置大量的xml,或者需要做很多繁琐的配置。
而springboot的自动装配在spring的基础上,做了很多简洁的操作,进行了优化
SpringBoot 在启动时会扫描外部引用 jar 包中的META-INF/spring.factories文件,将文件中配置的类型信息加载到 Spring 容器,比如我们常见的就是.yml文件、.properties文件 都可以自动加载。
除此之外,如果你要引入第三方的jar,如果是starter的jar,比如:
1 | <dependency> |
我们通过简单的配置,比如说@Configuration 或者在yml文件 就可以配置redis了,不再像spring那样在xml里面写一大堆的bean~
springboot如何实现自动装配?
入口:
1 |
|
总结
Spring Boot 通过@EnableAutoConfiguration开启自动装配,通过 SpringFactoriesLoader 最终加载META-INF/spring.factories中的自动配置类实现自动装配,自动配置类其实就是通过@Conditional按需加载的配置类