#java #spring-boot #properties-file
Вопрос:
У меня есть следующий класс конфигурации:
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)
Ответ №1:
- Удалить
@Configuration
изMailboxPropertiesConfiguration
. - Добавить
@EnableConfigurationProperties(MailboxPropertiesConfiguration.class)
кMailboxProducer