SpringBoot中的Profile多環(huán)境配置方法
Profile多環(huán)境配置
在實際開發(fā)中,應(yīng)用程序通常需要部署到不同的運行環(huán)境中如開發(fā)環(huán)境、測試環(huán)境、生產(chǎn)環(huán)境等。不同的環(huán)境可能使用不同的配置,如果每次部署都去手動修改配置文件,顯然是一件非常麻煩的事。因此SpringBoot提供了兩種多環(huán)境配置的方式,分別是使用profile文件進(jìn)行多環(huán)境配置以及使用@Profile注解進(jìn)行多環(huán)境配置
激活環(huán)境配置方式
1、在控制臺運行下列命令激活環(huán)境配置
java -jar xxx.jar --spring.profiles.active=proflieName
2、在全局配置文件application.properties中配置激活環(huán)境屬性(常用方式)
spring.profiles.active = proflieName
一、使用profile文件進(jìn)行多環(huán)境配置
使用profile文件進(jìn)行多環(huán)境配置時,該配置文件名需要滿足application-{profile}.properties的格式,如下所示
application-{dev}.properties //開發(fā)環(huán)境配置文件
application-{test}.properties //測試環(huán)境配置文件
application-{prod}.properties //生產(chǎn)環(huán)境配置文件
1、在resource目錄下分別創(chuàng)建application-dev.properties、application-test.properties、application-prod.properties多環(huán)境文件,并在各個配置文件中對服務(wù)端口進(jìn)行不同的設(shè)置,示例如下
application-dev.properties --->server.port=8081
application-test.properties --->server.port=8082
application-prod.properties --->server.port=8083
2、在application.properties中指定要激活的多環(huán)境配置文件
#指定要激活的profiles多環(huán)境配置為dev的配置 spring.profiles.active=dev #指定要激活的profiles多環(huán)境配置為test的配置 #spring.profiles.active=test #指定要激活的profiles多環(huán)境配置為prod的配置 #spring.profiles.active=prod
3、啟動SpringBoot啟動類

從運行結(jié)果中可以看到,Tomcat已經(jīng)被修改為我們在application-dev.properties中配置的8081(默認(rèn)為8080)
二、使用@Profile注解進(jìn)行多環(huán)境配置
@Profile注解主要作用于類,并通過value屬性指定配置環(huán)境,等同于Profile文件application-{profile}.properties名稱中的profile值,使用@Profile注解配置文件同樣需要在全局文件中激活
與@Configuration搭配使用
1、在config包下創(chuàng)建datasource包,在該包下創(chuàng)建一個接口DBConnector
package com.chen.config.datasource;
?
public interface DBConnector {
public void dataConfig();
}2、在detasource包下創(chuàng)建impl包,用于管理DBConnector的實現(xiàn)類
在該包下創(chuàng)建三個實現(xiàn)類分別DevDBConnector,TestDBConnector,ProdDBConnector
package com.chen.config.datasource.impl;
?
import com.chen.config.datasource.DBConnector;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
?
@Configuration// 表明當(dāng)前類為一個配置類,保證SpringBoot可以自動掃描并識別
@Profile("dev")//指定多環(huán)境配置類標(biāo)識
public class DevDBConnector implements DBConnector {
@Override
public void dataConfig() {
System.out.println("開發(fā)環(huán)境");
}
}package com.chen.config.datasource.impl;
?
import com.chen.config.datasource.DBConnector;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
?
@Configuration// 表明當(dāng)前類為一個配置類,保證SpringBoot可以自動掃描并識別
@Profile("test")//指定多環(huán)境配置類標(biāo)識
public class TestDBConnector implements DBConnector {
@Override
public void dataConfig() {
System.out.println("測試環(huán)境");
}
}package com.chen.config.datasource.impl;
?
import com.chen.config.datasource.DBConnector;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
?
@Configuration// 表明當(dāng)前類為一個配置類,保證SpringBoot可以自動掃描并識別
@Profile("prod")//指定多環(huán)境配置類標(biāo)識
public class ProdDBConnector implements DBConnector {
@Override
public void dataConfig() {
System.out.println("生產(chǎn)環(huán)境");
}
}3、在application.properties中指定要激活的多環(huán)境配置文件
#指定要激活的profiles多環(huán)境配置為dev的配置 spring.profiles.active=dev #指定要激活的profiles多環(huán)境配置為test的配置 #spring.profiles.active=test #指定要激活的profiles多環(huán)境配置為prod的配置 #spring.profiles.active=prod
4、編寫測試類
import com.chen.config.datasource.DBConnector;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
?
?
@RunWith(SpringRunner.class)
@SpringBootTest
public class datasourceTest {
@Autowired
private DBConnector dbConnector;
?
@Test
public void testDataSource(){
dbConnector.dataConfig();
}
}5、運行測試類

可以看到啟動端口好為Profile文件配置的dev中8081

也調(diào)用了@Profile("dev")中的輸出信息
項目結(jié)構(gòu)

到此這篇關(guān)于SpringBoot中的Profile多環(huán)境配置的文章就介紹到這了,更多相關(guān)SpringBoot Profile多環(huán)境配置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- SpringBoot 多Profile使用與切換方式
- SpringBoot中多環(huán)境配置和@Profile注解示例詳解
- SpringBoot?Profile多環(huán)境配置方式
- SpringBoot?Profiles?多環(huán)境配置及切換
- SpringBoot配置Profile實現(xiàn)多環(huán)境支持
- springboot學(xué)習(xí)筆記之 profile多環(huán)境配置切換的實現(xiàn)方式
- 使用Spring boot 的profile功能實現(xiàn)多環(huán)境配置自動切換
- SpringBoot多Profile配置的實現(xiàn)示例
相關(guān)文章
SpringBoot實現(xiàn)PDF轉(zhuǎn)圖片的代碼示例
在本文中,我們使用SpringBoot演示了如何將PDF文件轉(zhuǎn)換為一張或多張圖片,這些示例演示了如何使用Java編程語言與其他開源技術(shù)集成,以實現(xiàn)各種文件格式之間的轉(zhuǎn)換,感興趣的小伙伴跟著小編一起來看看吧2024-08-08
Java之Springcloud Gateway內(nèi)置路由案例講解
這篇文章主要介紹了Java之Springcloud Gateway內(nèi)置路由案例講解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08
不調(diào)用方法實現(xiàn)hutool導(dǎo)出excel圖片示例詳解
這篇文章主要為大家介紹了不調(diào)用方法實現(xiàn)hutool導(dǎo)出excel圖片示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08
SpringBoot + Spring Security 基本使用及個性化登錄配置詳解
這篇文章主要介紹了SpringBoot + Spring Security 基本使用及個性化登錄配置詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-05-05
SpringBoot實現(xiàn)動態(tài)定時任務(wù)
這篇文章主要為大家詳細(xì)介紹了SpringBoot實現(xiàn)動態(tài)定時任務(wù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-04-04
SpringBoot中使用MyBatis-Plus實現(xiàn)分頁接口的詳細(xì)教程
MyBatis-Plus是一個MyBatis的增強(qiáng)工具,在MyBatis的基礎(chǔ)上只做增強(qiáng)不做改變,為簡化開發(fā)、提高效率而生,在SpringBoot項目中使用MyBatis-Plus可以大大簡化分頁邏輯的編寫,本文將介紹如何在 SpringBoot項目中使用MyBatis-Plus實現(xiàn)分頁接口2024-03-03
Java?設(shè)計模式以虹貓藍(lán)兔的故事講解單例模式
單例模式(Singleton?Pattern)是?Java?中最簡單的設(shè)計模式之一。這種類型的設(shè)計模式屬于創(chuàng)建型模式,它提供了一種創(chuàng)建對象的最佳方式2022-03-03

