我有弹簧XML配置。我需要使用Spring注释重写它。
这个问题很直截了当:Spring注释中是否有Spring XML语句<context:property-placeholder location="classpath*:META-INF/*.properties"/>
的直接替代方法,它可以与示例(classpath*:META-INF/*.properties
)中被掩盖的位置一起使用?或其他替代方法,它将扫描我的类路径并在其中找到所有属性文件。
我试图@PropertySource
,但看起来不明白掩蔽。将直接路径属性文件是不是在我的情况下的一个选项,因为他们的计数可以独立地变化。
答案 0 :(得分:0)
我要寻找的替代方法是在配置中声明此bean:
@Bean
public static PropertySourcesPlaceholderConfigurer propPlaceholder() throws Exception {
PropertySourcesPlaceholderConfigurer propertyConfigurer = new PropertySourcesPlaceholderConfigurer();
propertyConfigurer.setLocations(new PathMatchingResourcePatternResolver().getResources("classpath*:META-INF/*.properties"));
return propertyConfigurer;
}
这不是注释,而是XML语句的替代。
答案 1 :(得分:0)
您可以使用ConfigurableApplicationContext类,还可以从不同位置加载属性文件,如下所示:
ConfigurableApplicationContext appContext = new SpringApplicationBuilder(Application.class)
.properties("spring.config.name:application,application2",
"spring.config.location:classpath:/external/application/properties/,classpath:/external/application2/properties")
.build().run(args);
ConfigurableEnvironment env = applicationContext.getEnvironment();
其中“ spring.config.name”下的值指定属性文件的名称(此处为application.properties和application2.properties),“ spring.config.location”下的值指定上述应用程序文件的路径分别