2012-08-31 39 views
6

Java的春天,我有一個基於模塊的項目,我有DAO層和模塊的業務層,它是依賴於DAO層和網絡層依賴於DAO層和業務層模塊。爪哇 - 爲jar文件春屬性文件配置

我使用maven項目彙編。並且每個組件的jar都是在web項目下的lib文件夾。

問題是我有春天的上下文文件和。屬性文件裏面的DAO jar和以下是我的配置,但我春天無法加載屬性我也嘗試加前綴value="classpath:abc.properties,但它沒有奏效。

當我打開DAO罐既彈簧上下文和.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> 

任何想法如何快速解決這個問題?

+0

你試過'的classpath *:abc.properties'? –

+0

爲了支持上述評論:http://stackoverflow.com/questions/3294423/spring-classpath-prefix-difference –

+0

是的,但沒有奏效 –

回答

1

我和春天有個多模塊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文件的命名空間網址:

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

文件夾ENV必須在classpath中,所以Spring可以找到它。我的屬性文件也在一個jar裏面,並且工作得很好。

0

我有這樣的錯誤和INT可能要做與您正在初始化上下文的方式,例如在我的web應用程序的問題是somehing在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。你應該告訴我們你是如何initilizing的情況下(如代碼或web.xml中如果這不能解決您的問題)