我有以下spring配置文件:
<context:property-placeholder order="2"
ignore-unresolvable="true" ignore-resource-not-found="true"
location="file:///${user.home}/application.properties" />
<context:property-placeholder order="1"
ignore-unresolvable="true" ignore-resource-not-found="true"
location="file:///C:/Services/Tomcat 6.0/cms/application.properties" />
<context:property-placeholder order="3"
location="classpath:com/afrozaar/cms/service/application.properties" />
注意它们是如何排序的,有些是在类路径上,有些是在文件系统上。
现在我要添加一个通过jndi加载的属性文件。我希望能够做到
<context:property-placeholder order="2"
ignore-unresolvable="true" ignore-resource-not-found="true"
location="jndi:url/application.properties" />
不幸的是,这不起作用,春天不支持jndi前缀... AFAIK。
那么,我可以这样做吗?
如果我不知道我的替代方案。我不想将整个配置转换为基于bean的完整属性占位符配置器。
答案 0 :(得分:1)
不确定“jndi:url / application.properties”的真正含义。我想你想在名为“url / application.properties”的资源条目中设置属性文件的路径。
您可以使用以下代码段实现此目的:
<bean class="org.springframework.beans.factory.config.PlaceholderConfigurerSupport">
<property name="location">
<bean id="publisherLocal" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="url/application.properties" />
<property name="expectedType" value="java.lang.String" />
</bean>
</property>
</bean>
答案 1 :(得分:0)
<context:property-placeholder>
具有properties-ref
属性,可以指向Properties
类型的bean。因此,您可以在代码中加载Properties
并使用它们声明<context:property-placeholder>
。