【參考】:maven pom.xml加載不同properties配置[轉]
首先 看看效果:
點開我們項目中的Maven projects 后,會發現右側 我們profile有個可勾選選項。默認勾選localhost。localhost對應項目啟動后,會加載配置左側localhost文件夾下面的jdbc.perperties 和 redis.properties。 對於項目中存在測試數據庫或者運行數據庫的區分的時候 我們可以通過勾選快速切換。那么我們是如何實現的呢
一:在左側文件目錄項目 配置相對於的文件目錄,並且注釋掉你之前的加載 ,如圖所示,
配置好所需的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-8
具體原因參考 Caused by: org.xml.sax.SAXParseException; lineNumber: 30; columnNumber: 84; 對實體 "characterEncoding"
二:配置 pom.xml
<!--配置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中 配置完成了 點擊編譯之后 如果 正常是可以的
但我這里報錯了 3 字節的 UTF-8 序列的字節 3 無效 后來查詢資料 發現還需要配置一個utf-8編譯 【參考】http://blog.csdn.net/lzupb/article/details/53008481
<!-- resource插件 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>2.6</version> <configuration> <encoding>UTF-8</encoding> </configuration> </plugin>
其實后來 還有一個問題 就是
- : Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
- 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寫法就解決了 把& 變成 &; 就好了