@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 +
                '}';
    }
}

同上输出

posted @ 2022-07-09 09:09  Dabo丶  阅读(74)  评论(0编辑  收藏  举报