设置Spring ApplicationContext中PropertyPlaceholderConfigurer相对于applicationContext.xml

时间:2015-09-29 15:55:50

标签: java spring spring-mvc applicationcontext

我想知道:是否可以在spring applicationContext.xml中为PropertyPlaceholderConfigurer设置相对于xml文件本身的属性文件的位置?

因此,当applicationContext.xml和dataSource.properties文件位于同一目录中时: 会不会像这样的工作,或者Spring不会找到该文件,因为我必须修改location-property值?

<bean id="dataSourceProperties"
    class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">  
    <property name="location" value="dataSource.properties" />   
</bean>

提前谢谢!

2 个答案:

答案 0 :(得分:1)

dataSourceProperties.properties文件放在resources文件夹中,按如下方式修改dataSourceProperties bean:

<bean id="dataSourceProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
  <property name="locations">
    <list>
      <value>classpath*:dataSource.properties</value>
    </list>
  </property>
</bean>

并在类定义中获取属性,如下所示:

@WebService
@Component
public class MyService{

      @Value("${databaseDriver}")
      private String databaseDriver;

      ....

}

此外,获取完整的属性文件,如下所示:

 @Component
 public class MyService{

     @Resource(name="dataSourceProperties")
     private Properties dataSourceProperties;

     ....

 }

<强> dataSource.properties:

databaseDriver=oracle.jdbc.driver.OracleDriver

答案 1 :(得分:-1)

不,这不起作用。

&#34;价值&#34;对于该位置,不会以applicationContext.xml的位置作为&#34; root-directory&#34;开头。它将使用spring应用程序启动的目录。

也许其他人也会有这个问题:P