在Spring中编写自定义PlaceholderResolver(如PropertyPlaceholderConfigurerResolver)

时间:2012-08-20 16:23:55

标签: java spring spring-el

我在Web应用程序中使用MBean来获取很多人通常放在属性文件中的应用程序属性。将从数据库中编写和读取MBean以实现持久性。

我正在寻找一种公开我的应用程序属性的方法(从(m)bean到Spring(例如Spring EL,applicationContext.xml)。在很多应用程序中使用PropertyPlaceholderConfigurerResolver但是因为我只是有一个常规(m)Bean我想将bean属性暴露给spring表达式语言。

我已经查看了PropertyPlaceholderConfigurerResolver,看看属性是如何向Spring Expression Language公开的,但我不知道如何。

我想某种程度上我需要编写一个自定义的PlaceholderResolver来访问我的MBean。我现在已经谷歌了几个小时,所以我很感激提示:)

此致

1 个答案:

答案 0 :(得分:2)

我不熟悉MBean,但我们的应用程序是从数据库中获取应用程序设置,然后在我们的应用程序上下文中使用它们。我们只是扩展PropertySourcesPlaceholderConfigurer,然后您只需要调用setPropertySources()方法。在我们的构造函数中,我们有类似的东西:

MutablePropertySources propertySources = new MutablePropertySources();
Map<String, Object> propertiesFromDB = getPropertiesFromDB();
MapPropertySource propertySource = new MapPropertySource("propsFromDB", propertiesFromDB);
propertySources.addFirst(propertySource);
setPropertySources(propertySources);