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