摘要:此種方式需要修改的配置,通用性不高。在中初始化寫一個類實現接口,重寫容器初始化方法設置屬性為為指定值。可以定義在一個屬性文件中,在使用構建時使用測試,灰度或者生產環境的屬性文件。
1.使用背景
項目開發一共有三個環境:測試環境,灰度環境和生產環境,比如我們想在測試環境下,不加載某些配置信息,可以通過profile來實現
2.激活profile實現方式JVM增加參數spring.profiles.active設置
在ServletContextListener 中初始化屬性spring.profiles.active
3. JVM增加參數spring.profiles.active設置在JVM中增加參數spring.profiles.active設置,如果我們想設置spring.profiles.active為dev,使用Dspring.profiles.active="dev" 。
此種方式需要修改tomcat的JVM配置,通用性不高。
4. 在ServletContextListener 中初始化spring.profiles.active寫一個類InitConfigListener實現接口ServletContextListener,重寫容器初始化方法contextInitialized(),設置屬性為spring.profiles.active為指定值environment。
environment可以定義在一個屬性文件中,在使用maven構建時使用測試,灰度或者生產環境的屬性文件。
在contextInitialized方法中讀取指定屬性文件,獲取environment 值,通過setProperty即可實現。
@WebListener public class InitConfigListener implements ServletContextListener { @Override public void contextInitialized(ServletContextEvent sce) { String environment = ""; //加載Properties屬性文件獲取environment值 //偵測jvm環境,并緩存到全局變量中 String env = System.setProperty("spring.profiles.active",environment); } @Override public void contextDestroyed(ServletContextEvent sce) { } }
spring.xml配置只在dev模式下加載配置文件spring-mybatis.xml
springboot使用注解@Profile和@Configuration來配置,@ActiveProfiles()在測試時切換環境
大家可以關注我的公眾號:不知風在何處,相互溝通,共同進步。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/67329.html
摘要:需要注意的是必須要使用版本為以上才支持屬性。與格式文件不同,正對不同的,無法在一個文件設置,官方采用命名形式為格式來達成一樣的效果。采用方式添加的是屬于額外激活的,也就是說覆蓋掉外部傳入的指定的。 showImg(https://segmentfault.com/img/remote/1460000019924197?w=1050&h=500); Spring Boot Profile...
摘要:配置文件配置文件提供了一種方法來隔離應用程序配置的部分,并使其僅在某些環境中可用。特殊配置的配置文件或和通過引用的文件的特殊配置文件的變體被視為文件并被加載。 25. 配置文件 Spring配置文件提供了一種方法來隔離應用程序配置的部分,并使其僅在某些環境中可用。任何@Component或@Configuration都可以標記為@Profile,以限制加載時的限制,如下例所示: @Co...
摘要:裝配提供了三種裝配機制在中進行顯示配置在中進行顯示配置隱式的發現機制和自動裝配機制。表示該類是一個組件,將自動創建該組件實例,表示注入組件實例,和功能類似,和功能類似,但和是規范中提供的注解。 基本原理 spring的基礎是IOC和DI,其實IOC和DI是對同一件事從不同的方面進行描述的,兩者在spring中是同一件事務。 IOC:控制反轉,在這里就是指創建bean的主動權發生了轉移,...
摘要:條件化使用的例子開發環境使用數據庫,線上環境使用數據庫數據庫配置文件說明可以用來條件化,使用注解即可配置也行激活機制有時,激活標記的沒有則激活標記的都沒有,則只激活沒有限定的激活方式有六種作為的初始化參數作為應用的上下文參數作為條目作為 @Profile 條件化 bean 使用 Profile 的例子:開發環境使用 H2 數據庫,線上環境使用 MySql 數據庫 application...
摘要:在集成測試時,通常想要激活的是開發環境的。因為沒有耦合類名,因此可以隨意重構的類名,不必擔心破壞自動裝配。在裝配中,占位符的形式為使用包裝的屬性名稱。參數裝配的是名為的屬性值。 環境與profile 配置profile bean 在3.1版本中,Spring引入了bean profile的功能。使用profile,首先將所有不同的bean定義整理到一個或多個profile之中,再將應用...
閱讀 3326·2021-11-19 11:36
閱讀 2927·2021-09-27 13:34
閱讀 1990·2021-09-22 15:17
閱讀 2404·2019-08-30 13:49
閱讀 754·2019-08-26 13:58
閱讀 1359·2019-08-26 10:47
閱讀 2538·2019-08-23 18:05
閱讀 600·2019-08-23 14:25