Spring启动访问组件中的application.properties

时间:2016-03-11 12:15:40

标签: spring spring-boot

我想在我的spring启动应用程序的application.properties中添加一个属性,并且能够访问它并在我的其他类中使用它,但是我得到了null。

这是我的application.properties

server.port=8052
subscribe.period=5

我的班级将访问它

@Component
public class SubscriptionService {

    @Value("${subscribe.period}")
    private String period

    @Autowired
    public SubscriptionService(String period) {
        String time = period;
        ...
    }

}

但似乎期间没有被填充,实际上是空的。当我至少在eclipse中作为maven构建运行时,它显示为nill,我认为它可能在属性文件加载之前尝试访问它,如果是这样,我该如何处理它?<​​/ p>

1 个答案:

答案 0 :(得分:1)

以上评论中的Deinum是正确的。我不知道为什么因为它与我读过的所有其他在线示例不同所以我会邀请他给出解释。

我必须将@Value放在构造函数的参数

@Component
public class SubscriptionService {

private String period

@Autowired
public SubscriptionService(@Value("${subscribe.period}") String period) {
    String time = period;
    ...
}

}

然后它可以工作