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

jar文件的Java-Spring属性文件配置,spring,properties,placeholder,Spring,Properties,Placeholder,JavaSpring我有基于模块的项目,我有DAO层的模块和依赖于DAO层的业务层的模块,web层依赖于DAO层和业务层 我正在使用maven进行项目编译。每个组件的jar都分组在web项目库文件夹下 问题是我在DAO jar中有spring上下文文件和.property文件,下面是我的配置,但spring无法加载属性。我还尝试了前缀value=“classpath:abc.properties,但它不起作用 当我打开DAOJAR时,spring上下文和.properties文件都在根目录下 &

JavaSpring我有基于模块的项目,我有DAO层的模块和依赖于DAO层的业务层的模块,web层依赖于DAO层和业务层

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

问题是我在DAO jar中有spring上下文文件和.property文件,下面是我的配置,但spring无法加载属性。我还尝试了前缀
value=“classpath:abc.properties
,但它不起作用

当我打开DAOJAR时,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>


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

我有一个带有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>

文件夹env必须在classpath中,这样Spring才能找到它。我的属性文件也在一个jar中,它工作得很好。

我有这个错误,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>

org.springframework.web.context.ContextLoaderListener
上下文类
org.springframework.web.context.support.AnnotationConfigWebApplicationContext
上下文配置位置
com.myapp.configuration.SpringConfig

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

您是否尝试过
classpath*:abc.properties
?为了支持上述评论:我假设您得到的错误是FileNotFoundException?您是否可以发布完整内容以确定?您是否尝试过使用classloader.getResource()加载指定的资源,它是否给您一个异常?
<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>