小编Ric*_*d67的帖子

如何在 Spring Boot 2.2.4 中将 @ConstructorBinding 和 @PropertySource 与 @ConfigurationProperties 一起使用?

我是 Spring Boot 的新手。目前,我正在尝试创建一个 POJO 类(SystemProperties.class)来读取属性文件中的值(parameter.properties与 application.properties 分开但仍在同一目录 /src/main/resources 下。当我我在类中使用 @ConstructorBinding 以使其不可变。

  • @ConstructorBinding 需要与@EnableConfigurationProperties 或@ConfigurationPropertiesScan 一起使用。
  • @ConfigurationPropertiesScan 将忽略使用 @PropertySource 指定外部
    *.properties 文件时需要的 @Configuration 注释。

A) SystemProperties.class

@Configuration
@PropertySource("classpath:parameter.properties")

@ConstructorBinding
@ConfigurationProperties(prefix = "abc")
public class SystemProperties {

    private final String test;

    public SystemProperties (
            String test) {
        this.test = test;
    }

    public String getTest() {
        return test;
    }
Run Code Online (Sandbox Code Playgroud)

B) 参数.properties

abc.test=text1
Run Code Online (Sandbox Code Playgroud)

我试图删除@PropertySource 注释,但无法检索该值,除非它来自 application.properties。任何帮助是极大的赞赏!

java spring immutability spring-boot

4
推荐指数
1
解决办法
5122
查看次数

标签 统计

immutability ×1

java ×1

spring ×1

spring-boot ×1