6

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

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

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

当我打开 DAO jar 时,spring 上下文和 .properties 文件都在根目录下。

<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>

知道如何快速解决这个问题吗?

4

2 回答 2

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 必须在类路径中,以便 Spring 可以找到它。我的属性文件也在一个罐子里,它工作得很好。

于 2012-09-01T18:06:54.450 回答
0

我遇到了这个错误,int 可能与您初始化上下文的方式有关,例如在我的 Web 应用程序中,问题与我在 web.xml 文件中设置的过滤器有关。此外,我最终使用的不是 xml 文件,而是一个带注释的配置类,并将其放在 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 文件,则必须将 AnnotationConfigWebApplicationContext 更改为 XmlWebApplicationContext。你应该告诉我们你是如何初始化你的上下文的(比如代码或 web.xml,如果这不能解决你的问题)

于 2012-09-01T18:24:53.733 回答