Java - jar文件的Spring属性文件配置

时间:2012-08-31 20:40:42

标签: spring properties placeholder

Java-Spring我有基于模块的项目,我有DAO层模块和业务层模块,它依赖于DAO层和依赖于DAO层和业务层的web层。

我正在使用maven进行项目编译。每个组件的jar都是web项目lib文件夹下的组。

问题是我在DAO jar中有弹簧上下文文件和.property文件,以下是我的配置,但是我无法加载属性我也试过加前缀value="classpath:abc.properties,但它没有用。

当我打开DAO jar时,spring context和.properties文件都在root上。

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

<bean id="cmfModelDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
      <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
      <property name="url" value="${jdbc.ConnectionUrl}"/>
      <property name="username" value="${jdbc.Username}"/>
      <property name="password" value="${jdbc.Password}"/>
  </bean>

任何想法如何快速解决这个问题?

2 个答案:

答案 0 :(得分:1)

我有一个使用Spring的多模块Web项目,使用以下代码:

<context:property-placeholder location="classpath:env/env.properties" />

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    <property name="driverClassName" value="${env.datasource.driver}" />
    <property name="url" value="${env.datasource.url}" />
    <property name="username" value="${env.datasource.username}" />
    <property name="password" value="${env.datasource.password}" />
</bean>

不要忘记验证xml文件中的命名空间url:

xmlns:context="http://www.springframework.org/schema/context";

文件夹env必须在classpath中,所以Spring可以找到它。我的属性文件也在jar中,它工作得很好。

答案 1 :(得分:0)

我遇到了这个错误,而int可能与初始化上下文的方式有关,例如在我的Web应用程序中,问题与我在web.xml文件中设置的过滤器有关。另外,我最终使用的不是xml文件,而是Annotated Config Class,并将其放在web.xml中:

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
    <param-name>contextClass</param-name>
    <param-value>
      org.springframework.web.context.support.AnnotationConfigWebApplicationContext
  </param-value>
</context-param>
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>com.myapp.configuration.SpringConfig</param-value>
</context-param>

如果您确实想使用xml文件,则必须更改XmlWebApplicationContext的AnnotationConfigWebApplicationContext。您应该告诉我们您如何初始化您的上下文(如代码或web.xml,如果这不能解决您的问题)