溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

SpringBoot 中怎么根據(jù)不同profile選擇不同配置

發(fā)布時(shí)間:2021-08-03 14:27:23 來(lái)源:億速云 閱讀:152 作者:Leah 欄目:開(kāi)發(fā)技術(shù)

SpringBoot 中怎么根據(jù)不同profile選擇不同配置,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。

SpringBoot 根據(jù)不同profile選擇不同配置

SpringBoot 中怎么根據(jù)不同profile選擇不同配置

SpringBoot 中怎么根據(jù)不同profile選擇不同配置

SpringBoot 中怎么根據(jù)不同profile選擇不同配置

附上pom的 profiles配置

	<build>
		<finalName>${project.artifactId}</finalName>
		<resources>
			<resource>
				<directory>src/main/resources/</directory>
				<filtering>true</filtering>
			</resource>

		</resources>

		<plugins>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<configuration>
					<encoding>utf-8</encoding>
					<source>1.8</source>
					<target>1.8</target>
				</configuration>
			</plugin>
		</plugins>
	</build>

	<profiles>
		<profile>
			<id>dev</id>
			<activation>
				<activeByDefault>true</activeByDefault>
			</activation>

			<properties>
				<profilesActive>dev</profilesActive>
			</properties>

		</profile>
		<profile>
			<id>test</id>
			<properties>
				<profilesActive>test</profilesActive>
			</properties>
		</profile>
		<profile>
			<id>prod</id>
			<properties>
				<profilesActive>prod</profilesActive>
			</properties>
			<build>
				<filters>
					<filter>/Users/xxx/Desktop/prod.properties</filter>
				</filters>
			</build>

		</profile>
	</profiles>

如果使用的是 application-prod.yml 文件

里面的占位符會(huì)被prod.properties替換掉

占位符用 兩個(gè)@@ 例如:@jdbc.name@

SpringBoot不同profile過(guò)濾配置文件

項(xiàng)目多數(shù)情況下,需要部署到不同環(huán)境中.使用maven打包,不做其它配置時(shí),默認(rèn)輸出的jar包中,包含所有的配置文件,這樣顯然不太合理,當(dāng)不同的生產(chǎn)環(huán)境中,不希望存在其它的生產(chǎn)環(huán)境的配置文件,可采用如下配置

1.pom文件中追加profile配置

<!--不同開(kāi)發(fā)環(huán)境配置-->
<profiles>
   <profile>
       <id>dev</id>
       <properties>
         <!--pa為自定義的屬性,可在application.yml文件中引用-->
           <pa>dev</pa>
       </properties>
       <activation>
           <!--不加參數(shù)默認(rèn)的profile-->
           <activeByDefault>true</activeByDefault>
       </activation>
   </profile>
   <profile>
       <id>test</id>
       <properties>
           <pa>test</pa>
       </properties>
   </profile>
<profiles>
<!--節(jié)點(diǎn)層級(jí)為project>profiles-->

2.pom文件中build節(jié)點(diǎn)下追加資源過(guò)濾選項(xiàng)

 <resources>
       <!--先忽略所有配置文件,后進(jìn)行需要的配置文件的追加-->
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
            <excludes>
                <exclude>**/application-*.yml</exclude>
            </excludes>
        </resource>
        <resource>
            <directory>src/main/resources</directory>
            <includes>
             <!--此處的pa代表的是profile中自定義的屬性-->
                <include>**/application-${pa}.yml</include>
            </includes>
        </resource>
 </resources>

3.application.yml文件中引用profile中定義參數(shù)

spring:
  profiles:
   # profile中定義的pa屬性
    active: @pa@

4.手動(dòng)打包指定環(huán)境

mvn clean package -Dmaven.test.skip=true -Pdev
  • -Dmaven.test.skip=true 表示跳過(guò)測(cè)試,可提高打包速度

  • -P后面的參數(shù)為profile的名稱

5.開(kāi)發(fā)狀態(tài)下切換不同環(huán)境

SpringBoot 中怎么根據(jù)不同profile選擇不同配置

  • 1.IDEA側(cè)邊欄Maven->Profiles勾選需要的環(huán)境

  • 2.項(xiàng)目目錄下,終端中執(zhí)行命令mvn -DskipTests=true clean install

  • 3.首次切換需要進(jìn)行如下操作,后續(xù)調(diào)試運(yùn)行無(wú)需更改

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝您對(duì)億速云的支持。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI