转自:
Spring @EnableAutoConfiguration注解简介及使用示例
下文笔者讲述@EnableAutoConfiguration注解的功能及示例说明,如下所示
EnableAutoConfiguration是SpringBoot的一个特性
可根据classpath中的jar依赖
自动注册bean,
一般用于类或接口上
它尝试根据您添加的jar依赖项自动配置Spring应用程序的IOC容器中
那么@EnableAutoConfiguration注解就是帮助SpringBoot程序完成这一自动装配功能
当然 @EnableAutoConfiguration注解 程序的原理,在框架SpringBoot的源码中
1.编写自动装配类
package java265.beanConfig;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
@Data //省略get set toString的编写
@ConfigurationProperties(prefix = "spring.user")
public class User {
private String name;
}
2.配置信息 spring.factories(注意spring.factories的位置)
# 自动装配
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
java265.beanConfig.User
3.bean属性配置 application.yml
spring:
user:
name: java265
4.测试获取自动装配bean
package java265;
import java265.beanConfig.User;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
public class ApplicationTest {
@Autowired
private User user;
@Test
public void testAutoCfg() {
System.out.println(user);
}
}
5.打印输出
User(name=java265)
6.pom.xml
4.0.0
java265
spring-boot-auto
1.0.0.RELEASE
jar
auto-boot
EnableAutoConfiguration-demo
org.springframework.boot
spring-boot-starter-parent
2.3.3.RELEASE
UTF-8
UTF-8
1.8
org.springframework.boot
spring-boot-starter
org.springframework.boot
spring-boot-starter-test
test
org.projectlombok
lombok
1.18.22
provided
org.springframework.boot
spring-boot-maven-plugin