我在etc文件夹中放置了一个属性文件。 “myapplication.properties”以及每个子模块中的其他几个属性文件..我尝试执行以下操作
<bean class="org.springframework.web.context.support.ServletContextPropertyPlaceholderConfigurer">
<property name="searchContextAttributes" value="true"/>
<property name="contextOverride" value="true"/>
<property name="ignoreResourceNotFound" value="true"/>
<property name="locations">
<list>
<value>classpath:application.properties</value>
<value>${config}</value>
</list>
</property>
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="ignoreUnresolvablePlaceholders" value="true"/>
我正在尝试 mvn -Dconfig =〜/ my.properties jetty:run
从application.properties读取属性,但不从config ..
读取在运行应用程序时我得到$ {jdbc.url}不正确..这个url存在于my.properties中.. 如何实现这一目标?
由于
答案 0 :(得分:3)
这就是我拥有的,运行它
<bean id="placeholderConfigConfig" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="systemPropertiesModeName">
<value>SYSTEM_PROPERTIES_MODE_OVERRIDE</value>
</property>
<property name="ignoreUnresolvablePlaceholders">
<value>true</value>
</property>
<bean
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="file:${config}" />
</bean>
在MAVEN_OPTS中添加-Dconfig = / var // my.properties ..并执行 mvn jetty:run
我找到了另一个单行解决方案..而不是简单的配置只做
<context:property-placeholder location="file:${config}"/>
答案 1 :(得分:1)
我认为这个功能在Spring 3.1中可以通过新的Environment抽象获得。有关详细信息,请参阅以下Spring博客:
http://blog.springsource.com/2011/02/15/spring-3-1-m1-unified-property-management/
如果spring 3.1不是一个选项,你可以将spring xml配置文件中的文件名和路径硬编码到一些众所周知的位置,然后开发人员可以对其进行符号链接。