java - Spring 根据属性文件中的属性导入资源 - 不使用 spring 配置文件 - 条件上下文加载

标签 java spring spring-mvc

我想根据属性文件中的属性值导入资源,有几个上下文文件,spring应该只加载那些值设置为true的文件。这些值对于不同的客户来说是不同的。

<import if{property} = true resource="classpath*:prod-config.xml"/>

我不能在这里使用 Spring 配置文件。请提出建议。

最佳答案

您可以使用 Spring 4 的 Conditionals实现该行为

例如:

@Configuration
@Conditional(MyConditionalProd.class)
@ImportResource("classpath*:prod-config.xml")
public class MyConditionalProdConfig {}

MyConditionalProd 将实现条件逻辑:

public class MyConditionalProd implements ConfigurationCondition{

    @Override
    public ConfigurationPhase getConfigurationPhase() {
        return ConfigurationPhase.PARSE_CONFIGURATION;
    }

    @Override
    public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
        String property = context.getEnvironment().getProperty("someProperty");
        if("prod".equals(property)) {
            return true;
        }else{
            return false;
        }
    }

}

关于java - Spring 根据属性文件中的属性导入资源 - 不使用 spring 配置文件 - 条件上下文加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43756039/

相关文章:

java - 如何在ANTLR4中实现错误处理

java - 如何实现再次播放功能?

java - MVC 模板项目看不到 hibernate.cfg.xml

java - 连接到 HSQLDB

Java无法发送https请求 "unable to find valid certification path"

spring - 在 Spring MVC 上有多个表单

java - IOIO,有没有办法调用 softreset();来自另一个类(class)?

java - 如何将改造 JSON 响应转换为列表?

java - Spring security 4.x 登录重定向到 '.../favicon' 而不是预期的 URL

spring - 使用 Hibernate Validator 验证 double 和 float 值 - bean 验证