java - 更改 Spring PropertyPlaceholderConfigurer 以从另一个源读取

标签 java spring properties

我想扩展/替换 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/

相关文章:

java - Java实现Telnet协议(protocol)服务器时的OOB数据

java - 查询没有返回唯一结果: 3; nested exception is javax. persistence.NonUniqueResultException:(Spring JPA项目)

java - 为什么 Controller 代码没有在 spring boot 应用程序中执行

java - 切换正在运行的 Java 程序的语言的最佳做法是什么

Python - 获取 win32com 类的所有属性/属性的列表

java - 如何向现有的空 JTable 添加列/行?

java - 在java中找到两个(Joda Time)DateTime对象之间的确切差异

java - 使用同一资源文件更改所有布局的 TextView 值

spring - 在Spring数据hadoop上运行作业的问题

python - 如何在kivy中将属性从一个类传递到另一个类