什么时候需要写自动配置类
当指定的类在类路径中存在时,才会创建Bean或执行配置;当容器中不存在指定的Bean时,才会创建Bean或执行配置;当指定的配置属性存在时,才会创建Bean或执行配置;当应用是Web应用时,才会创建Bean或执行配置。
再来看AutoConfigurationImportSelector这个类,这个类用来加载所有的自动配置项 通过上面的源码我们知道spring把所有配置项都导进来了,但我们并不需要所有的功能。
在spring boot的自定义配置类继承 WebMvcConfigurationSupport 后,发现自动配置的静态资源路径(classpath:/META/resources/,classpath:/resources/,classpath:/static/,classpath:/public/)不生效。
而诸多的XxxxAutoConfiguration自动配置类,就是Spring容器的JavaConfig形式,作用就是为Spring 容器导入bean,而所有导入的bean所需要的属性都通过xxxxProperties的bean来获得。
springboot的自动装配原理,如何实现按需加载?
首先打开一个基本的springboot项目,点进去@SpringBootApplication注解。
@EnableAutoConfiguration可以帮助SpringBoot应用将所有符合条件的@Configuration配置都加载到当前SpringBoot创建并使用的IoC容器。
通过selectImports方法,取到spring.factories文件下的一系列类名,随后将这些类自动加载至IOC容器中。
SpringBoot入门-自动配置详解
1、如果客户想为机器人改个名字也很简单,直接在application.yml配置下就行了 这个例子虽然很简单,但是说明了自动配置的工作原理,spring内置的自动配置虽然复杂,但原理都一样的。
2、版本兼容性:Spring Boot的不同版本可能存在一些兼容性问题,需要注意选择相应的版本,以确保项目能够正常运行。
3、第二步,创建一个AutoConfiguration。如果搜索Spring Boot下面的类,你会发现其实有很多名字形如xxxAutoConfiguration的类,这些类都是Spirng Boot为我们做的一些快捷配置类。
springboot自动配置原理
Spring Boot 的自动装配原理主要依赖于 Spring 框架提供的 @Configuration、@ComponentScan 和 @Conditional 等注解,配合 Spring Boot 提供的 @EnableAutoConfiguration 和 spring.factories 配置文件,来实现自动装配的功能。
如果客户想为机器人改个名字也很简单,直接在application.yml配置下就行了 这个例子虽然很简单,但是说明了自动配置的工作原理,spring内置的自动配置虽然复杂,但原理都一样的。
应用程序只需要在maven中引入starter依赖,SpringBoot就能自动扫描到要加载的信息并启动相应的默认配置。用一句话描述,就是springboot的场景启动器。