首页 > 解决方案 > 是否有 Spring 支持的方式从应用程序环境中获取 Properties 对象?

问题描述

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

我试图找到最轻松且受 Spring 支持的方法来做到这一点,但以下方法是我能想到的:

  1. 用于PropertiesLoaderUtils从特定文件显式加载属性。我做类似的事情"application-"+ activeProfile + ".properties"。这是迄今为止我最好的方法,但我想避免必须指定属性文件名并尽可能重新加载属性。

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

  3. 可能使用其他一些属性加载器?但是我找不到任何明确的文档来为我的用例执行此操作。

我觉得应该有一个非常简单的方法来获取Properties. 有没有我想念的直接方法?这个问题有更好的解决方案吗?

标签: javaspringspring-bootpropertiesenvironment

解决方案


你看过@configurationproperties了吗

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

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

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

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


推荐阅读