我正在尝试根据是否存在的属性动态加载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()方法来检查属性是否存在。
请帮助动态加载我的配置文件。