2012-12-24 19 views
0

我正在開發一個Spring 3中的maven多模塊項目。我有兩個項目。我在項目A中有一個名爲jdbc.properties的屬性文件(它包含數據庫用戶名,密碼),但項目B沒有jdbc.properties。我已經在項目b中包含項目a作爲依賴項,以便在Projet b中獲得項目a的一些通用代碼。我的問題是如何使用mavenjdbc在Spring 3中的屬性使用maven

應用程序的context.xml(片段)

<property name="jdbcUrl" value="${jdbc.url}"/> 
<property name="user" value="${jdbc.username}"/> 
<property name="password" value="${jdbc.password}"/> 

這裏的一個結構使用項目B彈簧context.xml文件項目A jdbc.properties的性質我的項目

**Projects** 
- Project A 
src/main/java 
    +src/main/resource 
    -Database.properties 
    Database file has following properties 
    jdbc.driverClassName=org.h2.Driver 
    jdbc.url=jdbc:h2:tcp://localhost/~/tododb 
    jdbc.username=sa 
    jdbc.password= 
    jpa.database=H2 
    jpa.showSql=true 
    pom.xml 

- Project b 
    +src/main/java 
    src/main/resource (don't want to have jdbc.properties file in this project) 
    pom.xml (I have added Project as dependencies in Project B because 
    i am using some common classes of project a in project b) 

下面是這兩個項目的POM文件 POM配置這兩個項目

- Project A (pom.xml) 
    <parent> 
    <groupId>com.ambientideas</groupId> 
    <artifactId>sample08-multimodulejava-parent</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    </parent> 
    <groupId>com.ambientideas1</groupId> 
    <artifactId>sample-multimodulejava-module1</artifactId> 
    <name>sample application 1</name> 
    <packaging>jar</packaging> 
    <dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>4.1</version> 
     <scope>test</scope> 
    </dependency> 
    </dependencies> 
</project> 

- Project B (Pom.xml) 
    <parent> 
    <groupId>com.ambientideas</groupId> 
    <artifactId>sample08-multimodulejava-parent</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    </parent> 
    <artifactId>sample-multimodulejava-module2</artifactId> 
    <packaging>jar</packaging> 
<dependencies> (using Project a common classes in project b) 
     <dependency> 
      <groupId>com.ambientideas1</groupId> 
      <artifactId>sample-multimodulejava-module1</artifactId> 
      <version>${version}</version> 
     </dependency> 
</dependencies> 
</project> 

這裏是我的項目的Spring配置的jdbc-context.jdbc文件。 現在Spring配置文件

In Both Projects (Project a, Project b), i have two jdbc.content.xml files(Spring xml's) 

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> 
<context:property-placeholder location="/META-INF/classes/jdbc.properties" /> 
    <property name="driverClass" value="${jdbc.driverClassName}"/> 
     <property name="jdbcUrl" value="${jdbc.url}"/> 
     <property name="user" value="${jdbc.username}"/> 
     <property name="password" value="${jdbc.password}"/> 
     </bean> 

問題: 我不希望有項目A和項目B兩個database.proprties文件。我要的是,我只是想在項目中只有一個jdbc.properties文件,然後想在B項目使用A項目JDBC.propties文件的屬性

<property name="driverClass" value="${jdbc.driverClassName}"/> 
     <property name="jdbcUrl" value="${jdbc.url}"/> 
     <property name="user" value="${jdbc.username}"/> 
     <property name="password" value="${jdbc.password}"/> 
     </bean> 

有什麼辦法做它?這裏是項目B pom.xml的狹窄

<project> 
    <parent> 
    <groupId>com.ambientideas</groupId> 
    <artifactId>sample08-multimodulejava-parent</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    </parent> 
    <artifactId>sample-multimodulejava-module2</artifactId> 
    <packaging>jar</packaging> 
    <dependencies> 
    <dependency> 
    <groupId>com.ambientideas1</groupId> 
    <artifactId>sample-multimodulejava-module1</artifactId> 
    <version>${version}</version> 
    <description>Project B<description> 
</dependency> 
    </dependencies> 
    </project> 

在此先感謝。

回答

0

如果您的屬性文件內置到Project A的jar中,那麼它將在類路徑中可用於加載其他任何代碼,所以您應該可以在項目B中使用它你從項目A使用它的方式。

請注意,這只是一個方便的意外,絕對是而不是我該如何建議設置您的項目。配置應該始終是外部化的,以便您的工件獨立於任何環境。

P.S.環境理念?那不是馬修麥卡洛的公司嗎?如果是這樣的話,那麼您在Java中就擁有大量的內部專業知識,特別是Maven。你不應該需要很多外部指導。

相關問題