我有一个属性文件,我想在其中修改某些属性以包含用户 ID(可能还有其他运行时加载的值),如下所示...
emailer.queuename=Emailer.${user}
...所以在这个例子中,Emailer.SMITHJ
读入时属性值可能会变成。
我想过扩展Properties
类并覆盖getProperty method
,但我还需要确保 Spring 在PropertyPlaceholderConfigurer
用于上下文时会相应地修改属性(我看到我可以convertPropertyValue
在这个类中覆盖)。
但是有没有一种巧妙的方法可以实现两者?
谢谢
====================================
更新:
在我的案例中,我发现的简单解决方案就是使用系统属性(例如 ${user.name}),并且systemPropertiesMode
因为PropertyPlaceholderConfigurer
类设置为fallback
Spring 会自动对其进行排序。但是,对于直接使用属性文件的情况,我仍然需要创建一个继承类,或者只是将值注入到使用它的类中。