【问题标题】:How map properties file using @Configuration properites prefix with dotted properties in Spring?如何在 Spring 中使用带有点属性的 @Configuration 属性前缀映射属性文件?
【发布时间】:2020-03-13 08:25:36
【问题描述】:

我有一组属性如下:

spring.kafka.producer.edwh.bootstrap-servers=localhost:9092
spring.kafka.producer.edwh.properties.enable.idempotence=true
spring.kafka.producer.edwh.retries=10
spring.kafka.producer.edwh.transaction-id-prefix=slv
spring.kafka.producer.edwh.value-serializer=org.springframework.kafka.support.serializer.JsonSerializer
spring.kafka.producer.edwh.properties.spring.json.add.type.headers=false

...我想通过使用@ConfigurationProperties(prefix = "spring.kafka.producer.edwh") 映射到这样的类中:

@ConfigurationProperties(prefix = "spring.kafka.producer.edwh")
public class EdwhKafkaProducerConfig {

    private String bootstrap_servers;
    private String properties_enable_idempotence;
    private int retries;
    private String transaction_id_prefix;
    private String value_serializer;
    private boolean properties_spring_json_add_type_headers;

}

...我该怎么办?

【问题讨论】:

    标签: java spring configurationproperties


    【解决方案1】:

    如果你使用的是 Spring Boot,那么你需要在你的情况下注释你的主应用程序类:

    @EnableConfigurationProperties(value = EdwhKafkaProducerConfig.class)
    

    您可能还需要为配置属性定义公共访问器方法。

    【讨论】:

    • 已启用,问题是虚线属性无法映射到下划线属性
    【解决方案2】:

    虚线属性表示单独的对象。所以如果你有

    mail.additionalHeaders.redelivery=true
    mail.additionalHeaders.secure=true
    mail.credentials.username=john
    mail.credentials.password=password
    

    那么你的配置类可以如下所示:

    @ConfigurationProperties(prefix = "mail")
    public class ConfigProperties {
        private AdditionalHeaders additionalHeaders;
        private Credentials credentials;
        // getters setters
    
        public class AdditionalHeaders {
            private boolean redelivery;
            private boolean secure;
            // getters setters
        }
    
        public class Credentials {
            private String username;
            private String password;
            // getters setters
        }
    }
    

    看看这里: https://www.baeldung.com/configuration-properties-in-spring-boot

    【讨论】:

      猜你喜欢
      • 2017-09-25
      • 2021-08-23
      • 2012-05-19
      • 1970-01-01
      • 2014-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多