Spring Boot自动装配原理

SpringBoot自动装配主要是基于注解编程和约定优于配置的思想来进行设计的,这种装配就是由Spring自动的把其他组建中的Bean装载到IOC容器中,不需要开发人员再去配置文件中添加大量的配置文件,我们只需要在SpringBoot的启动类上添加一个@SpringBootApplication的一个注解,这样的话就可以开启自动装配,这种自动装配的思想在Spring3.x以后就开始支持了,我们只要在类上添加一个加做@Enable的一个注解就可以了,只是没有像SpringBoot这样全面的去设计,因此Spring和SpringBoot最大的区别就是在于SpringBoot的自动装配;

2.自动装配的原理

@SpringBootApplication这个注解是暴露给用户使用的一个入口,它的底层其实是由@EnableAutoConfiguration这个注解要实现的,这样自动装配的实现我把它归纳为以下三个核心的步骤:

第一步是启动依赖组件的时候,组件中必须要包含@Configuration的一个配置类,在这个配置类里面声明为@Bean注解,然后将方法的返回值或者是属性注入到IOC容器中;

第二步,如果是使用第三方jar包的话SpringBoot会采用SPI机制,只要在/META-INF/目录下添加一个叫做spring.factories的一个配置文件,然后SpringBoot会自动根据约定自动使用SpingFactoriesLoader来加载配置文件中的内容

第三步是Spring获取到第三方jar中的配置以后会调用importSelector接口来完成动态加载,这样的设计的好处在于大幅减少臃肿的配置文件,而各模块的依赖也实现了深度的解耦,比如我们使用Spring创建Web程序的时候,需要引入非常多的Maven依赖。而SpringBoot中只需要引入一个Maven依赖就可以创建Web程序,并且SpringBoot把我们常用的依赖都放到了一起,我们只需要去引入spring-boot-starter-web这么一个依赖就可以去完成一个简单的Web应用,以前我们使用Spring需要XML文件来配置开启一些功能,现在使用SpringBoot就不需要XML文件了,只需要写了一个加了@Configuration注解的一个类或者是实现了对应接口的配置类就可以了

总结:

SpringBoot自动装配是Spring的完善和扩展,就是为我们便捷开发,方便测试和部署,提高效率而诞生的框架技术

不懂得线上可交流,可加WX:yhw978392564

你可能感兴趣的:(java,spring,boot,spring)