如何从ConditionContext获取应用程序属性

时间:2019-04-25 14:43:27

标签: java spring spring-mvc

我正在从事弹簧工作,但没有从事弹簧靴。我有一个标记为@Component的类(但没有标记为@Configuration [这不是配置类])。我想基于serviceA.create中的app.properties属性创建它。该文件看起来像这样:serviceA.create=true。我想,在代码中它可以缩小为:

@Override
    public boolean matches(final ConditionContext context, final AnnotatedTypeMetadata metadata) {

        return Boolean.valueOf(context.getEnvironment().getProperty("serviceA.create"));
    }

但是基于同一主题的不同问题/答案(例如this),听起来必须添加@PropertySource(value="classpath:config.properties")才能正常工作(以实际读取属性值)。

问题是,是否可以在不定义ConditionContext的情况下从@PropertySource获取财产?因为目前我得到的null没有该注释。


应通过以下方式完成:

@Component
@Conditional(ServiceACondition.class)
@PropertySource(value="classpath:app.properties")
public class ServiceA {
(...)
}

和条件。课

public class ServiceACondition implements Condition {
    @Override
    public boolean matches(final ConditionContext context, final AnnotatedTypeMetadata metadata) {

        return Boolean.valueOf(context.getEnvironment().getProperty("serviceA.start"));
    }
}

0 个答案:

没有答案