我想扩展/替换 Spring PropertyPlaceholderConfigurer 以从 Web 服务器读取而不是属性文件。
一些背景:
我从事一个项目,我们发现位于用户系统上的属性文件的数量变得有点难以处理。我们希望用“配置服务器”替换这些文件,该服务器将存储基本的键/值对并在用户启动应用程序时提供它们。
为了避免进行太多更改,我想更改 PropertyPlaceholderConfigurer 查找属性的方式 - 而不是实现全新的属性管理方式。因此,在启动时,Spring 将从 url 读取所有属性,并将这些属性输入到我的 spring 配置 xml 中,就像处理实际文件一样。
奖金!
如果有人有任何想法如何做到这一点,即从服务器重新加载属性仅当它们发生变化时,将获得奖励积分(我不知道我是否有能力分配奖励积分,但我会尝试!)。这将是一个“很高兴拥有,如果不需要太多努力”的解决方案。
最佳答案
Spring 的 PropertyPlaceholderConfigurer
(PPC) 已使用 Resource
interface指定读取属性的位置(通过从 PropertiesLoaderSupport 继承的 setLocation(Resource)
method。
该接口(interface)有一个实现类 URLResource
这可能会做你想要的。您可以简单地创建一个 PPC 并使用这种类型的 bean 设置 location
属性,以从 URL 而不是文件加载属性。此类还支持 file://
类型 URL,因此您可以根据您使用的 URL 在在线和离线属性加载之间切换。
关于java - 更改 Spring PropertyPlaceholderConfigurer 以从另一个源读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10812558/