java - 让 Spring 替换不同文件类型中的占位符(除了 Spring 的配置)

标签 java spring properties placeholder

有没有办法让 spring (v.3.0) 解析不是 .properties 的文件中的占位符? 我知道我可以编写自己的 PropertyPlaceholderConfigurer,但我一直在寻找一种“更简洁”的方法来完成它。

编辑:

更具体地说,我真正想做的是替换 .sql 文件中的占位符。因此,占位符的值存储在 .properties 中,但占位符在 .sql 文件中使用。

最佳答案

PropertyPlaceholderConfigurer bean 将替换其他 bean 定义中的占位符。具体来说,它会在实际创建 bean 之前更新 bean 定义中的 bean 属性值。因此,如果您想使用 PropertyPlaceholderConfigurer 修改 SQL,则需要将该 SQL 嵌入到 bean 属性值中。此类无法替换任意文件中的属性。

如果你想替换任意文件中的占位符,PropertyPlaceholderHelper class 是更好的选择。例如方法

String replacePlaceholders(String value, Properties properties)

将用 properties 中的属性替换 value 中的占位符,返回重写的字符串。您可以轻松地调整/包装它以替换文件中的占位符。

关于java - 让 Spring 替换不同文件类型中的占位符(除了 Spring 的配置),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3914971/

相关文章:

java - 为什么 Java 编译器不将此标记为错误?

java - 如何将电子邮件服务移至线程中?

java - 使用java play 2框架和spring data jpa自动生成数据库表

javax.servlet.jsp.JspException : javax/el/ValueExpression in Tomcat 5. 5

java - 单元测试很慢,因为spring classpath扫描多次扫描同一个包

ios - 等同于 Realm 中的 attributesByName 核心数据方法/获取 RLMObject 的属性/属性

java - 使用JNI调用给定DLL文件中定义的函数

java - 检查 solr/home 属性和日志。 ClassCastException : class org. apache.lucene.analysis.icu.ICUFoldingFilterFactory

javascript - javascript在spring应用程序中访问属性文件中的值的最佳方式

c++ - native C++ 属性的可移植性