从数据库中读取属性的apache commons配置的替代方案。

问题描述 投票:7回答:1

我刚刚发现apache commons配置可以从DataSource中读取属性,但它不能缓存这些属性。我的应用程序需要多次读取属性,每次访问数据库的速度都很慢。

我有一个骆驼应用程序,它将所有的消息发送到路由,而路由的终点是我的自定义bean.这个bean是用scope prototype创建的(我相信是OOP......),它们将需要从sql db中读取一些属性和一个数据源(从属性urlnameetc中读取),这取决于当前用户。不幸的是,我不能自由选择从哪里读取属性,因为现在有另一个软件(GUI)不是我写的,它是一个Userproperties管理器,写到db。所以我需要从它那里读取属性。

你能给我一个替代方案吗?

谢谢,马里奥

java properties datasource apache-commons-config
1个回答
6
投票

你可以使用Netflix Archaius项目,它增加了你要找的缓存行为以及动态刷新功能。 Archaius是围绕Commons Configuration构建的。

所以,你可以使用Archaius的DynamicConfiguration,而不是子类化DatabaseConfiguration,它扩展了Commons的AbstractConfiguration。 这个类将缓存任何你想要的源,并在你指定的时间间隔使用他们的轮询调度类刷新属性。

你唯一需要实现的类是PolledConfigurationSource,它从数据库中提取数据并将其放置在一个Map中。 应该很简单。

https:/github.comNetflixarchaiuswikiUsers-Guide)。

© www.soinside.com 2019 - 2024. All rights reserved.