java - 是否有 Spring 支持的方式从应用程序环境中获取 Properties 对象?
问题描述
所以我需要一个Properties
对象来实例化一个消息消费者。在我的 Spring Boot 应用程序中,我PropertySourcesPlaceholderConfigurer
在一个@Configuration
类中使用将正确的属性加载到应用程序中。根据部署环境,我可以有多个活动配置文件和属性文件。
我试图找到最轻松且受 Spring 支持的方法来做到这一点,但以下方法是我能想到的:
用于
PropertiesLoaderUtils
从特定文件显式加载属性。我做类似的事情"application-"+ activeProfile + ".properties"
。这是迄今为止我最好的方法,但我想避免必须指定属性文件名并尽可能重新加载属性。使用
Environment
类和循环遍历所有加载的属性并将它们加载到Properties
对象中。我宁愿重新加载方法 1 之类的属性,而不是这样做。可能使用其他一些属性加载器?但是我找不到任何明确的文档来为我的用例执行此操作。
我觉得应该有一个非常简单的方法来获取Properties
. 有没有我想念的直接方法?这个问题有更好的解决方案吗?
解决方案
你看过@configurationproperties了吗
https://www.mkyong.com/spring-boot/spring-boot-configurationproperties-example/
http://www.baeldung.com/configuration-properties-in-spring-boot
基本上,spring 会自动将这些属性注入到它刚刚实例化的 bean 中。
注意:您需要 @Configuration 和 @configurationproperties 才能使其工作
推荐阅读
- javascript - React Native 无法 npx 初始化项目,找不到模块错误
- bash - 使用 bash 脚本暴力破解我的在线帐户密码
- c# - 等待 CefSharp 中的 javascript 渲染页面加载
- python-3.x - 通过 python 进行的弹性搜索给出了错误的计数
- python - 在 Python 中将值插入二叉树
- r - 将闪亮与 facet_grid 相结合
- python - 如果每个子数组都包含字符串,则数组数组是否与数组数组相同?
- python - 为什么keras中的reshape函数不能改变维数
- java - 没有合适的驱动程序 JEE
- javascript - 使用 Jquery 从输入中获取值