无法在Spring Boot中定义自己的属性

时间:2018-03-15 08:19:59

标签: spring spring-boot configuration

我正在Spring Boot 1.5.9项目中工作,我正在尝试使用外部化配置配置我的课程。 我按照Baeldung指南进行了操作,并使用@Component@Configuration@PropertySource为我的@ConfigurationProperties课程添加了注释。

@Component 
@Configuration
@PropertySource("classpath:application-email.properties")
@ConfigurationProperties(prefix="email")
public class EmailDispatcherService extends Thread {

private String test;

public EmailDispatcherService() {
    System.err.println(test);
    start();
}}

首先,我尝试将@PropertySource("classpath:application.properties")设置为在默认文件中写入,当这不起作用时,我创建了自己的文件,而不是naming convention

我还将configuration-processor添加到pom.xml

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <optional>true</optional>
</dependency>

application.propertiesapplication-email.properties文件中,我添加了email.test=MyTest。不过,我的test字符串始终为null

1 个答案:

答案 0 :(得分:2)

您需要使用@Value注释显式设置变量的值。

@Component 
@Configuration
public class EmailDispatcherService extends Thread {

private String test;

public EmailDispatcherService(@Value("${email.test}") String emailTest) {
    System.out.println(emailTest);
    test = emailTest;
    start();
}}