是否有Spring支持的方法从应用程序环境中获取Properties对象?

时间:2018-05-18 18:36:05

标签: java spring spring-boot properties environment

所以我需要一个Properties对象来实例化消息使用者。在我的Spring Boot应用程序中,我在PropertySourcesPlaceholderConfigurer类中使用@Configuration将正确的属性加载到应用程序中。根据部署环境,我可以拥有多个活动配置文件和属性文件。

我试图找到最无痛和Spring支持的方法来做到这一点,但我可以想出以下方法:

  1. 使用PropertiesLoaderUtils显式加载特定文件的属性。我做了类似"application-"+ activeProfile + ".properties"的事情。到目前为止,这是我最好的方法,但我想避免在可能的情况下指定属性文件名和重新加载属性。

  2. 使用Environment类和循环遍历所有已加载的属性并将其加载到Properties对象中。我宁愿重新加载方法1之类的属性而不是这样做。

  3. 可能使用其他一些属性加载器?但是我找不到任何明确的文档来为我的用例做这件事。

  4. 我觉得应该有一个非常简单的方法来获得Properties。我缺少一种直截了当的方式吗?这个问题有更好的解决方案吗?

1 个答案:

答案 0 :(得分:0)

你看过@configurationproperties了吗

https://www.mkyong.com/spring-boot/spring-boot-configurationproperties-example/

http://www.baeldung.com/configuration-properties-in-spring-boot

基本上,spring会自动将这些属性注入它刚刚实例化的bean。

注意:您需要@Configuration和@configurationproperties才能使其正常工作