作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在使用 Java 和 spring boot 应用程序。我有一个属性文件,需要在运行时将其添加为 docker 镜像的环境变量。一些属性在通过占位符使用时会通过现有环境进行过滤,如下所示。
app.name=MyApp
app.description=${app.name} is a Spring Boot application
我正在编写一个示例 java 文件来读取此属性文件并创建一个具有一些过滤属性的 map 对象。在此过程中,如何用实际属性值替换占位符?
我已尝试使用 getProperty
方法寻找 key 并进行替换。但我想避免查找硬编码的属性键名称以避免维护困难。提前致谢。
最佳答案
用编号标记替换命名标记并使用 MessageFormat Java SE 类。它允许您完全按照您的要求去做。
假设 props 包含从您的文件加载的所有属性。
MessageFormat.format((String) props.get("app.description"),((String) props.get("app.name"));
在这里你的属性(property)应该是:
app.description={0} 是一个 Spring Boot 应用程序
否则你需要写一个自定义的
关于java - 如何在一个简单的java程序中替换spring属性占位符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47303358/
我是一名优秀的程序员,十分优秀!