spring有条件地加载xml资源

时间:2014-10-23 04:00:42

标签: java xml spring spring-mvc

我正在尝试根据是否存在的属性动态加载xml配置文件。 我正在使用spring @Conditional来检查属性是否存在。

@Configuration
@Conditional(CheckPropertyConfiguration.Condition1.class)
@ImportResource("webapp/WEB-INF/myContext.xml")
public class CheckPropertyConfiguration {

    public void test(){
        System.out.println("init .............test");
    }
    static class Condition1 implements ConfigurationCondition {
        @Override
        public ConfigurationPhase getConfigurationPhase() {
            System.out.println("getConfigurationPhase.............");
            System.out.println(System.getProperty("api.key"));
            return ConfigurationPhase.PARSE_CONFIGURATION;
        }
        @Override
        public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
            System.out.println("checking property exist or not: " + System.getProperty("api.key"));
            return System.getProperty("api.key") != null;
        }
    }
}

此bean在我的applicationContext.xml文件中配置

<bean class="com.cm.service.impl.CheckPropertyConfiguration" init-method="test" />

启动应用程序时,test()中的sysout正在运行并在控制台上显示输出。 但由于某种原因,spring框架不会调用getConfigurationPhase()和matches()方法来检查属性是否存在。

请帮助动态加载我的配置文件。

0 个答案:

没有答案