當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
【Spring注解系列14】@Profile进行环境切换
生活随笔
收集整理的這篇文章主要介紹了
【Spring注解系列14】@Profile进行环境切换
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.@Profile
Profile:
? ? ?Spring為我們提供的可以根據當前環境,動態的激活和切換一系列組件的功能;
開發環境、測試環境、生產環境;
數據源:(/A)(/B)(/C);
@Profile:指定組件在哪個環境的情況下才能被注冊到容器中,不指定,任何環境下都能注冊這個組件
1)、加了環境標識的bean,只有這個環境被激活的時候才能注冊到容器中。默認是default環境
2)、寫在配置類上,只有是指定的環境的時候,整個配置類里面的所有配置才能開始生效
3)、沒有標注環境標識的bean在,任何環境下都是加載的;
4)、@Profile可以作用在類上,也可以作用在方法上
?
2.激活環境的兩種方式
1、使用命令行動態參數: 在虛擬機參數位置加載 -Dspring.profiles.active=test
2、代碼的方式激活某種環境;
AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext() ;
applicationContext.getEnvironment().setActiveProfiles("test");
?
3.實例
@Profile可以用于不同環境數據的動態加載
public class Environment implements Serializable {private static final long serialVersionUID = -2794574965009461458L;private String envName = "dev";public Environment() {}public Environment(String envName) {this.envName = envName;}public String getEnvName() {return envName;}public void setEnvName(String envName) {this.envName = envName;}@Overridepublic String toString() {return "Environment{" +"envName='" + envName + '\'' +'}';} }//配置類 @Configuration public class ProfileConfig {@Profile("dev")@Beanpublic Environment dev(){return new Environment();}@Profile("test")@Beanpublic Environment test(){return new Environment("test");}@Profile("prod")@Beanpublic Environment prod(){return new Environment("prod");}@Profile("default")@Bean("default")public Environment defau(){return new Environment("default");} }//測試類 public class ProfileTest {/*** 1、使用命令行動態參數: 在虛擬機參數位置加載 -Dspring.profiles.active=test* 2、代碼的方式激活某種環境;*/public static void main(String[] args) {AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext() ;//1、創建一個applicationContext//2、設置需要激活的環境applicationContext.getEnvironment().setActiveProfiles("test");//若將該行注釋,則可以看到注入到環境的env為default//3、注冊主配置類applicationContext.register(ProfileConfig.class);//4、啟動刷新容器applicationContext.refresh();String[] environments = applicationContext.getBeanNamesForType(Environment.class);for (String name : environments) {System.out.println(name);}} }?
總結
以上是生活随笔為你收集整理的【Spring注解系列14】@Profile进行环境切换的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Spring注解系列13】Spring
- 下一篇: 【深入Java虚拟机JVM 06】垃圾收