【发布时间】:2015-05-08 19:41:11
【问题描述】:
我想知道是否可以在 PropertyPlaceholderConfigurer 中的属性文件之前使用 DB 中的值。所以我想要实现的是加载属性文件,如果数据库中存在任何键,请使用它。现在我不知道从哪里开始,但我假设有一个我可以重写的方法/类或我需要实现的接口。
只要提到方法/类/接口,我很乐意从那里开始。 TIA
【问题讨论】:
我想知道是否可以在 PropertyPlaceholderConfigurer 中的属性文件之前使用 DB 中的值。所以我想要实现的是加载属性文件,如果数据库中存在任何键,请使用它。现在我不知道从哪里开始,但我假设有一个我可以重写的方法/类或我需要实现的接口。
只要提到方法/类/接口,我很乐意从那里开始。 TIA
【问题讨论】:
PropertyPlaceholderConfigurer 有一个“properties”属性,它可以指向检索数据库值的对象。在此处查看示例:http://pure-essence.net/2011/02/10/spring-loading-properties-from-database-with-a-twist/
此外,您还需要在配置从数据库加载属性的 bean 上将“ignoreUnresolvablePlaceholders”设置为 true。这样,您可以添加另一个 PropertyPlaceholderConfigurer 作为后备,以提供在数据库中找不到的属性。
【讨论】:
由于您想要合并属性,您可能想要在您的目标 bean 上实现 InitializingBean。您的钩子将是 afterPropertiesSet 方法,您可以在其中使用您的功夫。
顺便说一句,Spring 按照容器遇到它的顺序加载和覆盖 bean 定义。
【讨论】: