有没有办法让 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/