SpringBoot中多環(huán)境配置和@Profile注解示例詳解
一、使用@Profile
1.1、@Profile修飾類
開發(fā)環(huán)境
package com.example.demo.config; import com.example.demo.entity.AppData; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Profile; @Configuration @Profile("development") public class DevelopmentConfig { @Bean public AppData getAppData() { AppData appData = new AppData(); appData.setEnvironmentName("development"); return appData; } }
正式環(huán)境
package com.example.demo.config; import com.example.demo.entity.AppData; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Profile; @Configuration @Profile("production") public class ProductionConfig { @Bean public AppData getAppData() { AppData appData = new AppData(); appData.setEnvironmentName("production"); return appData; } }
1.2、@Profile修飾方法
package com.example.demo.config; import com.example.demo.entity.AppData; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Profile; @Configuration public class AppConfig { // 開發(fā)環(huán)境 @Bean("appConfigData") @Profile("development") public AppData getDevelopmentAppData() { AppData appData = new AppData(); appData.setEnvironmentName("app development"); return appData; } // 正式環(huán)境 @Bean("appConfigData") @Profile("production") public AppData getProductionAppData() { AppData appData = new AppData(); appData.setEnvironmentName("app production"); return appData; } }
1.3、@Profile修飾注解
1、定義注解
開發(fā)環(huán)境
package com.example.demo.annotation; import org.springframework.context.annotation.Profile; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Profile("development") public @interface Development { }
正式環(huán)境
package com.example.demo.annotation; import org.springframework.context.annotation.Profile; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Profile("production") public @interface Production { }
2、使用注解
package com.example.demo.config; import com.example.demo.annotation.Development; import com.example.demo.annotation.Production; import com.example.demo.entity.AppData; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class AppConfig { // 開發(fā)環(huán)境 @Bean("appConfigData") @Development public AppData getDevelopmentAppData() { AppData appData = new AppData(); appData.setEnvironmentName("app development"); return appData; } // 正式環(huán)境 @Bean("appConfigData") @Production public AppData getProductionAppData() { AppData appData = new AppData(); appData.setEnvironmentName("app production"); return appData; } }
二、激活@Profile
2.1、配置文件方式激活@Profile
application.properties
spring.profiles.active=production
application.yml
spring: profiles: active: production
2.2、命令行方式激活@Profile
java -jar target/demo-0.0.1-SNAPSHOT.jar --spring.profiles.active=production
三、多Profile資源文件
配置文件
# 公共配置 application.properties # development application-development.properties # production application-production.properties
application.properties
# 激活配置文件 spring.profiles.active=production
application-development.properties
server.port=8081
application-production.properties
server.port=8082
完整代碼 https://github.com/mouday/spring-boot-demo/tree/master/SpringBoot-Profile
參考
Springboot中的@Profile注解
到此這篇關(guān)于SpringBoot中多環(huán)境配置和@Profile注解的文章就介紹到這了,更多相關(guān)SpringBoot 多環(huán)境配置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- SpringBoot 多Profile使用與切換方式
- SpringBoot中的Profile多環(huán)境配置方法
- SpringBoot?Profile多環(huán)境配置方式
- SpringBoot?Profiles?多環(huán)境配置及切換
- SpringBoot配置Profile實(shí)現(xiàn)多環(huán)境支持
- springboot學(xué)習(xí)筆記之 profile多環(huán)境配置切換的實(shí)現(xiàn)方式
- 使用Spring boot 的profile功能實(shí)現(xiàn)多環(huán)境配置自動切換
- SpringBoot多Profile配置的實(shí)現(xiàn)示例
相關(guān)文章
spring security登錄成功后通過Principal獲取名返回空問題
這篇文章主要介紹了spring security登錄成功后通過Principal獲取名返回空問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-03-03解決SpringBoot web項目啟動后立即關(guān)閉的問題
這篇文章主要介紹了解決SpringBoot web項目啟動后立即關(guān)閉的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08Java導(dǎo)出Excel統(tǒng)計報表合并單元格的方法詳解
我們在日常編程過程中,總是會碰見導(dǎo)出相關(guān)表格信息的需求,所以就讓我們一起來學(xué)習(xí)一下,這篇文章主要給大家介紹了關(guān)于Java導(dǎo)出Excel統(tǒng)計報表合并單元格的相關(guān)資料,需要的朋友可以參考下2021-10-10Java List Object[]轉(zhuǎn)換成List T的實(shí)例
這篇文章主要介紹了Java List Object[]轉(zhuǎn)換成List T的實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09手把手教你如何利用SpringBoot實(shí)現(xiàn)審核功能
審核功能經(jīng)過幾個小時的奮戰(zhàn)終于完成了,現(xiàn)在我就與廣大網(wǎng)友分享我的成果,這篇文章主要給大家介紹了關(guān)于如何利用SpringBoot實(shí)現(xiàn)審核功能的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05