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

d-m*_*man 6 spring properties placeholder

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

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

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

当我打开DAO jar时,spring上下文和.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>
Run Code Online (Sandbox Code Playgroud)

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

gdf*_*osa 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>
Run Code Online (Sandbox Code Playgroud)

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

xmlns:context="http://www.springframework.org/schema/context";
Run Code Online (Sandbox Code Playgroud)

文件夹 env 必须位于类路径中,以便 Spring 可以找到它。我的属性文件也在一个 jar 内,并且工作得很好。