日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

[Spring Boot 系列] 集成maven和Spring boot的profile功能

發(fā)布時間:2023/12/14 javascript 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [Spring Boot 系列] 集成maven和Spring boot的profile功能 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

由于項目的需要, 今天給spirng boot項目添加了profile功能。再網(wǎng)上搜索了一圈,也沒有找到滿意的參考資料,其實配置并不難,就是沒有一個one stop(一站式)講解的地方,所以有了寫這篇博客的想法。由于本人水平有限,文中任何錯誤和紕漏歡迎大家反饋。希望本文可以給你帶來幫助。

? ? 本文實現(xiàn)的目標(biāo):

? ? ? ? ? ?1 使用了maven的profile功能

? ? ? ? ? ?2 使用了Spring Boot的profile功能

? ? ? ? ? ?3 集成了1和2的功能

? ? ? ? ? ?4 在eclipse中運行mvn工程,使用開發(fā)環(huán)境的profile。

? ? ? ? ? ?5 通過mvn在命令行中打包時,可以指定相應(yīng)的profile。


什么是profile,解決什么問題呢?舉個例子。一般在開發(fā)項目的時候要有多個環(huán)境,如開發(fā)環(huán)境、測試環(huán)境、生產(chǎn)環(huán)境,他們的配置文件一般不同。當(dāng)我們要向各個環(huán)境發(fā)布程序時,需要人工處理這些配置文件,這顯然麻煩且易錯。有了profile,一切問題就簡單了。只要在maven打包時使用下面命令即可。?view pl?c??

mvn clean package -Dmaven.test.skip=true -P prod

? ? ? ? ? ? 解釋一下, -P prod 就是告訴maven要使用名字為prod的profile來打包,即所有的配置文件都使用生產(chǎn)環(huán)境(prod是自己定義的,在這里自定義為生產(chǎn)環(huán)境)。


實現(xiàn)思路簡述:

? ? maven支持profile功能,當(dāng)使用maven profile打包時,可以打包指定目錄和指定文件,且可以修改文件中的變量。spring boot也支持profile功能,只要在application.properties文件中指定spring.profiles.active=xxx 即可,其中xxx是一個變量,當(dāng)maven打包時,修改這個變量即可。


具體實現(xiàn):



A段,介紹coolpro工程的配置。

? ? 這個工程只需要修改pom.xml文件即可,需要定義具體maven的profile。定義完畢之后,當(dāng)我們使用mvn clean package -P dev 時,maven就知道了profileActive=dev這個屬性生效了。其中profileActive可以自己定義,就是一個maven的自定義屬性。

? ? pom.xml文件如下:



B段,介紹coolpro-api工程的配置

? ? 這個工程是一個web工程,主要是想根據(jù)指定的profile配置相應(yīng)的spring boot運行環(huán)境。如:如果profile是dev,配置web服務(wù)器的監(jiān)聽端口為8010;profile為test,則端口為8020;profile為prod,則端口為8030。?

? ? 工程中有4個文件:

? ? ? ? ? ? ? application.properties, 包含通用配置的文件。文件中有spring.profiles.active=@profileActive@的屬性。spring boot的profile是通過spring.profiles.active屬性來配置的,這里的profileActive和上面coolpro工程中配置的profileActive屬性名要一致。這樣,在運行mvn命令時,maven就會幫我們將@profileActive@替換成指定的profile。

? ? ? ? ? ? ? application-dev.properties, 當(dāng)mvn -P dev時, 需要打包這個文件。

? ? ? ? ? ? ? application-test.properties,?當(dāng)mvn -P test時, 需要打包這個文件。

? ? ? ? ? ? ? application-prod.properties,?當(dāng)mvn -P prod時, 需要打包這個文件。

? ? pom.xml配置:


? ? application.properties文件:


? ? ?其他3個文件見截圖:


? ??

C段,介紹coolpro-core工程的配置


配置完成了。看效果。

1 在Eclipse環(huán)境中,直接運行項目。


2 使用maven命令,打包這個應(yīng)用。

? ? ?1)以開發(fā)環(huán)境打包:mvn clean package -Dmaven.test.skip=true -P dev -e?

? ? ? ? ? ?結(jié)果如下:

? ? ? ?查看api工程:

? ? ??

? ? ?查看core工程:



以此類推, 可以運行

? ? ? ?mvn clean package -Dmaven.test.skip=true -P test -e?

? ? ? ?mvn clean package -Dmaven.test.skip=true -P prod -e?


注意兩點:

? ? ? ?1 在屬性文件中替換變量時,使用@符號。?

? ? ? ?

? ? ? ??最開始,使用$符號,就是不能替換,在網(wǎng)上搜索一下,原來是maven的maven-resources-plugin可以定義這個替換的符號。通過eclipse提供的Maven Pom editor編輯器打開pom.xml文件,在“Effective POM”選項卡中,可以看到定義的是@這個符號。


? ? ? 2 怎么在啟動spring boot應(yīng)用時,打印正在使用的profile,避免配置錯誤呢?可以參考如下代碼。?view plain?copy

public static void main(String[] args) {ApplicationContext ctx = SpringApplication.run(RestApiApplication.class, args);String[] activeProfiles = ctx.getEnvironment().getActiveProfiles();for (String profile : activeProfiles) {logger.warn("Spring Boot 使用profile為:{}" , profile);}}


參考:http://docs.spring.io/spring-boot/docs/current/reference/html/

? ? ? ? ? ??http://www.tuicool.com/articles/NjqAF3

? ? ? ? ? ??http://blog.csdn.net/jbgtwang/article/details/8642979

? ? ? ? ? ??http://zilongsky-gmail-com.iteye.com/blog/2032001

? ? ? ? ? ??http://www.huangyunkun.com/2015/01/01/run-code-after-spring-boot-started/


原文鏈接:http://blog.csdn.net/lihe2008125/article/details/50443491

總結(jié)

以上是生活随笔為你收集整理的[Spring Boot 系列] 集成maven和Spring boot的profile功能的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。