2

我想知道是否可以在 PropertyPlaceholderConfigurer 中的属性文件之前使用 DB 中的值。所以我想要实现的是加载属性文件,如果数据库中存在任何键,请使用它。现在我不知道从哪里开始,但我假设有一个我可以覆盖的方法/类或我需要实现的接口。

只要提到方法/类/接口,我很乐意从那里开始。TIA

4

2 回答 2

8

PropertyPlaceholderConfigurer 有一个“properties”属性,它可以指向一个检索数据库值的对象。在此处查看示例:http: //pure-essence.net/2011/02/10/spring-loading-properties-from-database-with-a-twist/

此外,您需要在配置从数据库加载属性的 bean 上将“ignoreUnresolvablePlaceholders”设置为 true。这样,您可以添加另一个 PropertyPlaceholderConfigurer 作为后备,以提供在数据库中找不到的属性。

于 2013-08-07T08:35:03.897 回答
1

由于您想要合并属性,您可能想要在目标 bean 上实现InitializingBean 。您的钩子将是 afterPropertiesSet 方法,您可以在其中使用您的功夫。

顺便说一句,Spring 按照容器遇到它的顺序加载和覆盖 bean 定义。

于 2013-08-07T08:35:40.313 回答