1

我想扩展/替换 Spring PropertyPlaceholderConfigurer 以从 Web 服务器而不是属性文件中读取。

一点背景:

我在一个项目上工作,我们发现位于用户系统上的属性文件的数量变得有点笨拙。我们希望将这些文件替换为“配置服务器”,该服务器将存储基本的键/值对并在用户启动应用程序时为它们提供服务。

为避免进行太多更改,我想更改 PropertyPlaceholderConfigurer 查找属性的方式 - 而不是实现一种全新的方式来管理属性。所以在启动时——Spring 会从一个 url 读取所有属性,并以与实际文件相同的方式将这些属性输入我的 spring 配置 xml。

奖金!

如果有人有任何想法如何做到这一点,只有在属性更改时才从服务器重新加载,将获得奖励积分(我不知道我是否有能力分配奖励积分,但我会尝试!)。如果不付出太多努力,那将是一个“很高兴”的解决方案。

4

1 回答 1

2

Spring 的PropertyPlaceholderConfigurer(PPC) 已经使用该Resource接口来指定读取属性的位置(通过从 PropertiesLoaderSupport 继承的setLocation(Resource)方法。

这个接口有一个实现类,URLResource它可能会做你想要的。您可以简单地创建一个 PPC 并location使用这种类型的 bean 设置属性,以从 URL 而不是文件加载属性。此类还支持file://类型 URL,因此您可以根据使用的 URL 在在线和离线属性加载之间切换。

于 2012-05-30T09:39:34.770 回答