在maven pom.xml中加載不一樣的properties ,如localhost 和 dev master等jdbc.properties 中的連接不同

【參考】:maven pom.xml加載不一樣properties配置[轉]mysql

 首先 看看效果:web

點開咱們項目中的Maven projects 後,會發現右側 咱們profile有個可勾選選項。默認勾選localhost。localhost對應項目啓動後,會加載配置左側localhost文件夾下面的jdbc.perperties 和 redis.properties。 對於項目中存在測試數據庫或者運行數據庫的區分的時候 咱們能夠經過勾選快速切換。那麼咱們是如何實現的呢redis

一:在左側文件目錄項目 配置相對於的文件目錄,而且註釋掉你以前的加載 ,如圖所示,spring

配置好所需的jdbc 連接   須要注意的 (正確寫法)url=jdbc:mysql://127.0.0.1:3306/course_design?useUnicode=true&characterEncoding=UTF-8 中間的間隔符 必須用 & 替換掉以前寫的 (錯誤寫法)url=jdbc:mysql://127.0.0.1:3306/course_design?useUnicode=true&characterEncoding=UTF-8sql

具體緣由參考   Caused by: org.xml.sax.SAXParseException; lineNumber: 30; columnNumber: 84; 對實體 "characterEncoding"數據庫

 

                                        

 

 二:配置 pom.xmlapache

 

 <!--配置profiles-->
  <profiles>
    <profile>
      <id>localhost</id>
      <!--默認勾選設置-->
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
      <properties>
        <env>localhost</env>
      </properties>
    </profile>

    <profile>
      <id>dev</id>
      <properties>
        <env>dev</env>
      </properties>
    </profile>
    <profile>
      <id>master</id>
      <properties>
        <env>master</env>
      </properties>
    </profile>
  </profiles>

    <build>
        ......................................
    </build>

 

 

<build>
.............................
<!--指定待加載的文件位置--> <filters> <filter>configs/${env}/jdbc.properties</filter> <filter>configs/${env}/redis.properties</filter> </filters> <!--指定須要這些加載數據的 配置文件位置--> <resources> <resource> <directory>src/main/resources</directory> <includes> <include>**/**</include> </includes> <filtering>true</filtering> </resource> </resources> </build>

 

理論上 這個時候 以及在pom,xml中 配置完成了 點擊編譯以後 若是 正常是能夠的 app

但我這裏報錯了  3 字節的 UTF-8 序列的字節 3 無效   後來查詢資料 發現還須要配置一個utf-8編譯 【參考】http://blog.csdn.net/lzupb/article/details/53008481 maven

<!-- resource插件 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>2.6</version>
                <configuration>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>

 

 其實後來 還有一個問題 就是測試

  1. : Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener  
  2. org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 30 in XML document from class path resource [applicationContext.xml] is invalid; nested exception is org.xml.sax.SAXParseException; lineNumber: 30; columnNumber: 84; 對實體 "characterEncoding" 的引用必須以 ';' 分隔符結尾。  這樣的的一個異常

這個時候 前面介紹的jdbc url寫法就解決了  把&  變成 &amp; 就行了

相關文章
相關標籤/搜索