我想扩展/替换Spring PropertyPlaceholderConfigurer以从Web服务器读取而不是属性文件。
一些背景知识:
我在一个项目上工作,我们发现用户系统上的属性文件数量变得有点笨拙。我们想用'配置服务器'替换这些文件,它将存储基本的键/值对,并在用户启动应用程序时提供它们。
为了避免做太多更改,我想改变PropertyPlaceholderConfigurer找到属性的方式 - 而不是实现一种全新的方法来管理属性。所以在启动时--Spring会从url中读取所有属性,并以与实际文件相同的方式将它们提供给我的spring config xml。
加成!
如果有人有任何想法如何做到这一点,只有当他们改变从服务器重新加载属性时,才会获得奖励积分(我不知道我是否有能力分配奖励积分,但我会试试!)。如果没有太多努力的话,那将是一件好事。
答案 0 :(得分:2)
Spring的PropertyPlaceholderConfigurer
(PPC)已经使用Resource
interface来指定从哪里读取属性的位置(通过继承自PropertiesLoaderSupport的setLocation(Resource)
method。
这个名为URLResource
的接口的实现类可能会做你想要的。您可以简单地创建一个PPC并使用此类型的bean设置location
属性,以从URL而不是文件加载属性。此类还支持file://
类型的URL,因此您可以根据您使用的URL在加载的on-offline属性之间切换。