@ConfigurationProperties 是 Spring Boot 提供的一个注解,它可以将配置文件中的属性值与 Java 对象进行绑定,方便开发人员使用。

        在 Spring Boot 中,我们可以通过 application.properties 或者 application.yml 管理应用程序的配置属性。例如,我们可以在 application.properties 中定义一个名为 myconfig.name 的属性:

myconfig.name=bj

当应用程序需要获取这个属性时,通常会使用@Value注解来注入

@RestController
public class MyController {
    @Value("${myconfig.name}")
    private String name;

    // ...
}

但是,如果应用程序需要管理大量的配置属性,使用@Value注解就显得非常繁琐和冗长,就可以使用@ConfigurationProperties 注解将这些属性统一管理,例如:

@Configuration
@ConfigurationProperties(prefix = "myconfig")//prefix指定配置文件中xml文件的前一个头
public class MyConfig {
    private String name;

    // getter 和 setter 省略

    @Override
    public String toString() {
        return "MyConfig [name=" + name + "]";
    }
}

上述代码中,@Configuration注解将Myconfig类为配置类,并使用@ConfigurationProperties(prefix = "myconfig") 指定了要绑定的属性前缀为 myconfig,这就意味着在application.properties中的属性名需要以myconfig开头。之后,Spring boot会自动将配置文件中以myconfig开头的属性绑定到Myconfig对象的对应字段上;例如myconfig.name的属性值“bj”就会被绑定到Myconfig对象的name字段上。

这样,在应用程序中需要使用这个属性时,就可以直接注入Myconfig对象了:

@RestController
public class MyController {
    @Autowired
    private MyConfig myconfig;

    @GetMapping("/name")
    public String getName() {
        return myconfig.getName();
    }
}

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐