使用Spring @Condition时,您是否可以使用配置文件中的属性?

时间:2017-09-08 14:53:35

标签: spring

我已经阅读了StackOverflow和其他网站上我能找到的所有内容,而且我在任何地方都没有看到确定的答案。

我有一个实现@Condition的类,我在@Configuration文件中使用它来有条件地加载一些bean。我正在做这样的事情:

public class MyCondition implements Condition {
    @Override
    public boolean matches(ConditionContext context, AnnotatedTypeMetadata metdata) {
        String property = context.getEnvironment().getProperty("some.prop.from.file");
        boolean enable = Boolean.parseBoolean(property);
        return enable;
    }

}

调试时我发现从环境中获取属性总是返回null,即使该属性是使用@Value注入其他bean的。

所以我的问题是你或者你不能尝试从@Condition类中的文件中获取属性值?你能获得系统属性吗?我认为这是一个常见的用例,我认为Spring可以处理。

1 个答案:

答案 0 :(得分:0)

必须将该属性添加到application.properties,而不是在启动期间加载的其他属性文件。