如何在 Spring-Boot 中获取属性文件的 bean?



我需要玩弄属性文件的键。键将是动态的,所以我需要属性文件的 bean,如下所述作为我当前正在运行的 Spring 应用程序。

弹簧配置:

<bean id="multipleWriterLocations" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="ignoreResourceNotFound" value="true" />
<property name="locations">
<list>
<value>classpath:writerLocations.properties</value>
<value>file:config/writerLocations.properties</value>
</list>
</property>
</bean>

爪哇代码:

Properties prop = appContext.getBean("multipleWriterLocations")

我需要在 Spring-boot 中使用相同的属性 bean 实例。我需要在不更改功能的情况下将现有的 Spring 应用程序转换为 Spring-Boot。

使用 @PropertySource(( 获取属性文件值的一种方法,但在这种情况下我需要键名。但就我而言,键名未知,我需要从属性 bean 中获取键集。

您可以使用@ImportResource("classpath:config.xml")其中config.xml包含上述PropertiesFactoryBean,然后将其自动连接到您的@SpringBootApplication@Configuration类中。

@SpringBootApplication
@ImportResource("classpath:config.xml")
public class App {
public App(PropertiesFactoryBean multipleWriterLocations) throws IOException {
// Access the Properties populated from writerLocations.properties
Properties properties = multipleWriterLocations.getObject();
System.out.println(properties);
}
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}

最新更新