1. 程式人生 > >JavaWeb-Maven Profile切換資料庫連線配置

JavaWeb-Maven Profile切換資料庫連線配置

切換資料庫連線配置

編寫不同環境的配置檔案
1.在pinyougou-dao工程中src/main/resources下建立filter資料夾

2.在filter資料夾下建立db_dev.properties ,用於配置開發環境用到的資料庫

envir.jdbc.driver=com.mysql.jdbc.Driver

envir.jdbc.url=jdbc:mysql://localhost:3306/pinyougoudb?characterEncoding=utf-8

envir.jdbc.username=root

envir.jdbc.password=root


3.在filter資料夾下建立

db_pro.properties,用於配置生產環境用到的資料庫

envir.jdbc.driver=com.mysql.jdbc.Driver

envir.jdbc.url=jdbc:mysql://localhost:3306/pinyougoudb_pro?characterEncoding=utf-8

envir.jdbc.username=root

envir.jdbc.password=root


4.修改properties資料夾下的db.properties檔案

jdbc.driver=${envir.jdbc.driver}

jdbc.url=${envir.jdbc.url}

jdbc.username=${envir.jdbc.username}

jdbc.password=${envir.jdbc.password}

定義Profile

修改pom.xml檔案

<!-- install -P pro/dev 安裝  pro環境/dev環境的 properties配置檔案  package -P pro/dev 打包 pro/dev 環境的 properties -->
  
  <!--

    配置預設install/package使用的properties檔案,如執行package (-P pro)命令時,不指定-P pro時預設使用這個配置,
  該預設的配置必須配置上,不可以省略,且"<env>"必須與下面fileter過濾器中的${env}內的名稱相同,否則報錯

--> 

  <properties><!--預設使用的properties檔案配置-->

        <env>dev</env>

  </properties>

  <profiles>

    <profile>

        <id>dev</id>

        <properties>

            <env>dev</env>

        </properties>

    </profile>   

    <profile>

        <id>pro</id>

        <properties>

            <env>pro</env>

<!-- 可以使用<en>pro</en>標籤,但是需要在下面的filter路徑中改為${en},否則找不到 -->

        </properties>

    </profile>

  </profiles>


資源過濾與變數替換

修改pom.xml ,在build節點中新增如下配置

<build>

<!-- 定義過濾器 ,指定過濾資源的地址-->

    <filters>

        <filter>src/main/resources/filters/db_${env}.properties</filter>

 <!-- 

這裡的${env}中的名稱env必須與上面配置的預設的properties中的標籤名env相同,否則報錯,可以與上面的預設properties配置下面各個環境下的 <env>標籤不同名,不同名時(即不是env時)即使通過package -P pro指定環境也會使用預設的properties配置,因為在預設propeties配置的下面的profiles中均為<env>標籤的配置,找不到同名的

-->

     </filters>

    <resources>

        <resource>

<!-- 資源目錄,下面的意思是在下面的資源目錄下啟用過濾 -->

            <directory>src/main/resources</directory>

            <filtering>true</filtering>

        </resource>        

    </resources>
</build>  

這裡我們利用filter實現對資原始檔(resouces)過濾 
maven filter
可利用指定的xxx.properties中對應的key=value對資原始檔中的${key}進行替換,最終把你的資原始檔中的username=${key}替換成username=value

打包

pinyougou-dao 工程執行命令:package -P pro , 解壓生成的jar包,觀察db.properties配置檔案內容,已經替換為生產環境的值。