我有一个web应用程序,它使用spring初始化,并使用maven构建。使用静态呈现的属性文件加载各种属性。由于不同的环境对相同的属性需要不同的值,所以我在构建时根据环境使用maven配置文件加载不同的属性文件。示例:- dev.properties用于开发环境,prod.properties用于生产环境。
现在,我希望使构建独立于属性文件,在上下文初始化过程中,属性的值将从某些数据源(动物园管理员)中获取。
如何在初始化上下文之前加载属性?
发布于 2015-02-09 09:06:47
Properties只是Java类之一,abstraction项目正是提供了这样一个抽象。我刚刚给您展示了JDBC的一个示例,但是还有很多其他的东西。下面是我如何从DB StoredProcedure加载属性的示例:
<jee:jndi-lookup id="dataSource" jndi-name="DS"/>
<bean id="storedProcedureConfiguration" class="com.my.proj.config.StoredProcedureConfiguration"
p:dataSource-ref="dataSource"
p:sqlQuery="pki_props.getProperties"/>
<bean id="propertiesFromDB" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"
p:staticMethod="org.apache.commons.configuration.ConfigurationConverter.getProperties"
p:arguments-ref="storedProcedureConfiguration"/>
<context:property-placeholder properties-ref="propertiesFromDB"/>因此,您可以实现自己的AbstractConfiguration,从Zookeeper加载Properties并将其注入<context:property-placeholder>。
发布于 2015-05-26 14:09:13
春云康菲动物园管理员提供了一种实现该功能的方法。我发布了一个使用这里的简单示例
发布于 2015-02-09 17:14:40
在java构造函数中,只需设置到Zookeeper服务器的连接,并使用zookeeper客户端方法获取所需的数据。您可以在这里找到示例:http://zookeeper.apache.org/doc/trunk/javaExample.html
它看起来会像这样(但你必须详细说明这个)
public YourConstructor() {
Zookeeper zk = new ZooKeeper(host,...);
zk.getData(...);
}https://stackoverflow.com/questions/28397982
复制相似问题