網(wǎng)站維護(hù)開發(fā)合同seo怎么做推廣
寫在前面
本文看下springboot項(xiàng)目如何通過文件夾的方式來(lái)組織不同環(huán)境配置文件。
1:正文
一般的我們寫springboot項(xiàng)目時(shí)配置文件是這個(gè)樣子的:
appliction.yaml --> 通過spring.profiles.active=xxx來(lái)激活某個(gè)指定后綴的配置文件
application-evn1.yml
application-evn2.yml
application-evn3.yml
上面不同環(huán)境的配置放在了不同的配置文件中。接著,隨著項(xiàng)目的增大,越來(lái)越多的功能和中間件會(huì)被引入,自然的每個(gè)文件配置的內(nèi)容會(huì)越來(lái)越多,這個(gè)時(shí)候?yàn)榱朔奖憔S護(hù)我們會(huì)通過拆分成多個(gè)文件的方式來(lái)解決這個(gè)問題,此時(shí)就變成了這樣:
appliction.yaml --> 通過spring.profiles.active=xxx來(lái)激活某個(gè)指定后綴的配置文件application-evn1-mq.yml
application-evn1-auth.yml
application-evn1-mysql.ymlapplication-evn2-mq.yml
application-evn2-auth.yml
application-evn2-mysql.ymlapplication-evn3-mq.yml
application-evn3-auth.yml
application-evn3-mysql.yml
這個(gè)時(shí)候包括主配置文件在內(nèi)我們就有了10個(gè)配置文件在一起堆著
,當(dāng)然實(shí)際的情況配置文件的數(shù)量要比這個(gè)還要多,要改一個(gè)配置找都得找半天啦!如何解決這個(gè)問題?可以考慮再加一層文件夾,每個(gè)文件夾放一個(gè)環(huán)境的配置文件,這樣就能很快定位到具體的環(huán)境,進(jìn)而找到對(duì)應(yīng)的配置文件進(jìn)行修改,也就是變成這樣子:
appliction.yaml --> 通過spring.profiles.active=xxx來(lái)激活某個(gè)指定后綴的配置文件evn1(文件夾):application-evn1-mq.ymlapplication-evn1-auth.ymlapplication-evn1-mysql.ymlevn2(文件夾):application-evn2-mq.ymlapplication-evn2-auth.ymlapplication-evn2-mysql.ymlevn3(文件夾):application-evn3-mq.ymlapplication-evn3-auth.ymlapplication-evn3-mysql.yml
想要實(shí)現(xiàn)這種效果,我們需要依賴于maven提供的profile來(lái)做,首先配置如下:
<profiles><profile><!-- 本地開發(fā)環(huán)境 --><id>xx</id><properties><profiles.active>xx</profiles.active><maven.test.skip>true</maven.test.skip></properties><activation><activeByDefault>true</activeByDefault></activation></profile><profile><!-- 本地開發(fā)環(huán)境 --><id>dev</id><properties><profiles.active>dev</profiles.active><maven.test.skip>true</maven.test.skip></properties><activation><activeByDefault>false</activeByDefault></activation></profile>
</profiles><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>2.3.1.RELEASE</version><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins><resources><resource><directory>src/main/resources</directory><!-- 資源根目錄排除各環(huán)境的配置,防止在生成目錄中多余其它目錄 --><excludes><exclude>xx/*</exclude><exclude>dev/*</exclude></excludes></resource><resource><directory>src/main/resources/${profiles.active}</directory></resource></resources>
</build>
這其實(shí)就是maven的profile功能,配置后在maven的視圖中就可以看到相關(guān)的profile了:
這我們勾選誰(shuí),就會(huì)加載哪個(gè)文件下的配置信息了,比如我們其中xx:
如果是在測(cè)試環(huán)境或者是生產(chǎn)環(huán)境,則就可以這樣來(lái)做CICD,比如dev:
D:\\programs\\mvn363\\apache-maven-3.6.3-bin\\apache-maven-3.6.3\\bin\\mvn clean package -Pdev
如下就是打出的jar包,是個(gè)fat jar,直接運(yùn)行就可以了:
所以借助于idea工具,在本地開發(fā)的時(shí)候,只需要通過ui操作就可以切換不同的profile了,當(dāng)然通過maven命令也是可以的。
寫在后面
參考文章列表
SpringBoot不同環(huán)境加載不同配置文件 。
maven中profiles使用詳解 。