@ConfigurationProperties、@EnableConfigurationProperties实体类映射配置文件中属性值
1.第一种配置@Component+@ConfigurationProperties
配置类
@Component public class MyConfig1 { @Bean public User user(){ return new User(); } }
或者在User类上加@Component
@Data @ConfigurationProperties(prefix = "user") public class User { private String myName; private int age; public User(String myName, int age) { this.myName = myName; this.age = age; } public User(){ } @Override public String toString() { return "User{" + "myName='" + myName + '\'' + ", age=" + age + '}'; } }
application.properties
user.myName=zhangsan
user.age=20
第一种输出类
public static void main(String[] args) { ConfigurableApplicationContext run = SpringApplication.run(StudyWork1Application.class, args); User user = run.getBean(User.class); System.out.println(user); }
第一种输出结果
第二种输出类
@RestController public class MyController { @Autowired private User user; @RequestMapping("/userInfo") public User getUser(){ return user; } }
访问
http://localhost:8080/userInfo
第二种输出结果
2.第二种配置@ConfigurationProperties+@EnableConfigurationProperties
配置类
@Component @EnableConfigurationProperties(User.class)
// 1.开始配置绑定功能
// 2.把这个User组件自动注册到容器中 public class MyConfig1 { }
@Data @ConfigurationProperties(prefix = "user") public class User { private String myName; private int age; public User(String myName, int age) { this.myName = myName; this.age = age; } public User(){ } @Override public String toString() { return "User{" + "myName='" + myName + '\'' + ", age=" + age + '}'; } }
同上输出