【问题标题】:@ConfigurationProperties not binding properties@ConfigurationProperties 不绑定属性
【发布时间】:2021-09-22 00:38:54
【问题描述】:

我有以下配置类:


import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Positive;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.stereotype.annotation.Configuration;
import org.springframework.validation.annotation.Validated;

import lombok.Data;


@Configuration
@ConfigurationProperties(prefix = "mail.config")
@Data
@RefreshScope
@Validated
public class MailboxPropertiesConfiguration{
    
    @NotBlank
    private String host;

    @NotBlank
    private String adminLogin;

    @NotBlank
    private String adminPassword;

}

以及以下属性文件:

mail.config.host=127.0.0.1
mail.config.admin-login=xxx
mail.config.admin-password=yyy

还有以下类:

@Configuration
public class MailboxProducer extends AbstractConfiguration{

    protected MailboxProducer(MailboxPropertiesConfiguration config) {
        super(config.getHost());
    }
    
}

我的问题是 config.getHost() 为空(其他属性也是如此),即使我有设置器 (@Data) 我尝试删除@ConfigurationProperties 并改用@Value,但结果相同。 你能告诉我我做错了什么吗?

谢谢。 (我使用的是 Spring Boot 2.4.3)

【问题讨论】:

    标签: java spring-boot properties-file


    【解决方案1】:
    1. MailboxPropertiesConfiguration 中删除@Configuration
    2. @EnableConfigurationProperties(MailboxPropertiesConfiguration.class) 添加到MailboxProducer

    【讨论】:

      猜你喜欢
      • 2017-06-02
      • 2018-06-09
      • 1970-01-01
      • 1970-01-01
      • 2018-08-22
      • 2019-01-02
      • 1970-01-01
      • 2017-10-19
      • 2017-10-08
      相关资源
      最近更新 更多