在Spring Boot開發中,通過Maven構建項目依賴是一件比較舒心的事,可以為我們省去處理沖突等大部分問題,將更多的精力用於業務功能上。近期在項目中,由於項目集成了其他外部系統資源文件,需要根據不同的環境實現加載不同的JS資源文件,處理這個問題首先想到的便是通過判斷當前環境實現動態加載JS,但是,在應用打包的時候已經明確了部署環境,對於靜態資源的引用也是確定的,為何不在執行打包的過程中指定引用的資源路徑?沒錯,尤其在通過Spring Boot的Maven打包時,可以通過簡單的幾行代碼來實現實現。下面給出一個簡單的例子,比如,在html頁面我們需要動態的引入一個JS,JS的路徑分別為http://www.cnblogs.com/funnyboy0128/test.js和http://www.cnblogs.com/funnyboy0128-test/test.js,假設分別對應到生產環境和開發環境,則處理如下:
1、pom文件如下:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
<!-- mavne打包動態修改替換占位符 -->
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
<profiles>
<profile>
<id>dev</id>
<properties>
<funnyboy.env>http://www.cnblogs.com/funnyboy0128-test</funnyboy.env>
</properties>
</profile>
<profile>
<id>pro</id>
<properties>
<funnyboy.env>http://www.cnblogs.com/funnyboy0128</funnyboy.env>
</properties>
</profile>
</profiles>
2、資源 文件,例如xx.html中引用JS如下:
<script type="text/javascript" src="@funnyboy.env@/test.js"></script>
3、打完包測試一下:
mvn package -Pdev后查看應用包的xx.html,內容如下:<script type="text/javascript" src="http://www.cnblogs.com/funnyboy0128-test/test.js"></script>
mvn package -Ppro后查看應用包的xx.html,內容如下:<script type="text/javascript" src="http://www.cnblogs.com/funnyboy0128/test.js"></script>
經過測試OK。
