中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Spring Boot 中如何配置 Profile

發布時間:2020-06-26 14:17:45 來源:網絡 閱讀:273 作者:Java筆記丶 欄目:編程語言
一個應用為了在不同的環境下工作,常常會有不同的配置,代碼邏輯處理。Spring Boot 對此提供了簡便的支持。
關鍵詞:?@Profile、spring.profiles.active

目錄

  • 區分環境的配置

  • properties 配置

  • yml 配置

  • 區分環境的代碼

  • 修飾類

  • 修飾注解

  • 修飾方法

  • 激活 profile

  • 插件激活 profile

  • main 方法激活 profile

  • jar 激活 profile

  • 在 Java 代碼中激活 profile

區分環境的配置

properties 配置

假設,一個應用的工作環境有:dev、test、prod

那么,我們可以添加 4 個配置文件:

  • applcation.properties?- 公共配置

  • application-dev.properties?- 開發環境配置

  • application-test.properties?- 測試環境配置

  • application-prod.properties?- 生產環境配置

在?applcation.properties?文件中可以通過以下配置來激活 profile:

spring.profiles.active?=?test

yml 配置

與 properties 文件類似,我們也可以添加 4 個配置文件:

  • applcation.yml?- 公共配置

  • application-dev.yml?- 開發環境配置

  • application-test.yml?- 測試環境配置

  • application-prod.yml?- 生產環境配置

在?applcation.yml?文件中可以通過以下配置來激活 profile:

spring:
??profiles:
????active:?prod

此外,yml 文件也可以在一個文件中完成所有 profile 的配置:

#?激活?prod
spring:
??profiles:
????active:?prod
#?也可以同時激活多個?profile
#?spring.profiles.active:?prod,proddb,prodlog
---
#?dev?配置
spring:
??profiles:?dev

#?略去配置

---
spring:
??profiles:?test

#?略去配置

---
spring.profiles:?prod
spring.profiles.include:
??-?proddb
??-?prodlog

---
spring:
??profiles:?proddb

#?略去配置

---
spring:
??profiles:?prodlog
#?略去配置

注意:不同 profile 之間通過?---?分割

區分環境的代碼

使用?@Profile?注解可以指定類或方法在特定的 Profile 環境生效。

修飾類

@Configuration
@Profile("production")
public?class?JndiDataConfig?{

????@Bean(destroyMethod="")
????public?DataSource?dataSource()?throws?Exception?{
????????Context?ctx?=?new?InitialContext();
????????return?(DataSource)?ctx.lookup("java:comp/env/jdbc/datasource");
????}
}

修飾注解

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Profile("production")
public?@interface?Production?{
}

修飾方法

@Configuration
public?class?AppConfig?{

????@Bean("dataSource")
????@Profile("development")
????public?DataSource?standaloneDataSource()?{
????????return?new?EmbeddedDatabaseBuilder()
????????????.setType(EmbeddedDatabaseType.HSQL)
????????????.addScript("classpath:com/bank/config/sql/schema.sql")
????????????.addScript("classpath:com/bank/config/sql/test-data.sql")
????????????.build();
????}

????@Bean("dataSource")
????@Profile("production")
????public?DataSource?jndiDataSource()?throws?Exception?{
????????Context?ctx?=?new?InitialContext();
????????return?(DataSource)?ctx.lookup("java:comp/env/jdbc/datasource");
????}
}

激活 profile

插件激活 profile

spring-boot:run?-Drun.profiles=prod

main 方法激活 profile

--spring.profiles.active=prod

jar 激活 profile

java?-jar?-Dspring.profiles.active=prod?*.jar

在 Java 代碼中激活 profile

直接指定環境變量來激活 profile:

System.setProperty("spring.profiles.active",?"test");

在 Spring 容器中激活 profile:

AnnotationConfigApplicationContext?ctx?=?new?AnnotationConfigApplicationContext();
ctx.getEnvironment().setActiveProfiles("development");
ctx.register(SomeConfig.class,?StandaloneDataConfig.class,?JndiDataConfig.class);
ctx.refresh();


使用方法:

mvn?clean?package
cd?target
java?-jar?-Dspring.profiles.active=prod?sbe-core-profile.jar


本人免費整理了Java高級資料,涵蓋了Java、RedisMongoDBMySQL、Zookeeper、Spring Cloud、Dubbo高并發分布式等教程,一共30G,需要自己領取。
傳送門:https://mp.weixin.qq.com/s/JzddfH-7yNudmkjT0IRL8Q

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

徐州市| 福海县| 五常市| 招远市| 余江县| 当雄县| 苍溪县| 包头市| 瑞昌市| 武鸣县| 绿春县| 肥乡县| 五大连池市| 安泽县| 嵊州市| 湘潭市| 苍梧县| 同德县| 林周县| 湖南省| 宁陵县| 五华县| 合川市| 柞水县| 屯昌县| 苗栗县| 大港区| 庄浪县| 黄石市| 朝阳市| 灵武市| 镇远县| 洪湖市| 永嘉县| 岚皋县| 长泰县| 班玛县| 和顺县| 兴业县| 吐鲁番市| 宣化县|