spring @profile註解的使用
本文主要介紹spring中@profile的使用方法以及在什麼情況下使用。
本文主要參考:
http://www.cnblogs.com/davidwang456/p/4429058.html
好,下面上貨。
首先說一下為什麼要使用這個@profile註解。@profile註解是spring提供的一個用來標明當前執行環境的註解。我們正常開發的過程中經常遇到的問題是,開發環境是一套環境,qa測試是一套環境,線上部署又是一套環境。這樣從開發到測試再到部署,會對程式中的配置修改多次,尤其是從qa到上線這個環節,讓qa的也不敢保證改了哪個配置之後能不能線上上執行。
為了解決上面的問題,我們一般會使用一種方法,就是配置檔案,然後通過不同的環境讀取不同的配置檔案,從而在不同的場景中跑我們的程式。
那麼,spring中的@profile註解的作用就體現在這裡。在spring使用DI來依賴注入的時候,能夠根據當前制定的執行環境來注入相應的bean。最常見的就是使用不同的DataSource了。
下面詳細的介紹一下,如何通過spring的@profile註解實現上面的功能。
首先是新建maven工程
mvn archetype:generate -DarchetypeCatalog=internal
下面是pom檔案:
整體看一下工程中的類和介面:
首先是Person類中有一個speak的方法,這個方法是MoveFactor這個藉口提供的。Chinese、English和German都實現了這個介面。但是這三個類的@profile中的值是不同的。通過SpringTest中分配不同的activeprofile就能夠實現呼叫不同的speak方法。
下面看程式碼:
MoveFactor.interface
Chinese.java
English.java
German.java
使用springtest進行測試
執行結果:
當修改@ActiveProfile中的值時,輸出的內容也會隨之改變。
如果使用的是main函式進行真正的開發、測試和上線時,我們需要設定一下執行引數:
-D 後面加上需要設定的spring的屬性,就能夠在main函式中使用了。
App.java
執行結果:
如果需要得到當前的activeprofile可以通過ConfigurableApplicationContext的例項來的到。
最後提一下,如果是在web的後臺專案中如何進行設定。這個時候我們通過xml的方式進行設定:
相關文章
- Spring @Profile註解使用和原始碼解析Spring原始碼
- Spring入門(七):Spring Profile使用講解Spring
- Spring的@PropertySource註解使用Spring
- Spring MVC 常用註解的使用SpringMVC
- Spring中@Import註解的使用SpringImport
- Spring中Value註解的使用Spring
- Spring(使用註解配置)Spring
- 使用spring 的註解 @value使用方法Spring
- Spring的@Qualifier註解使用說明Spring
- Spring裝配Bean(五)profile註解和解決自動注入的歧義性SpringBean
- Spring IOC 常用註解與使用Spring
- Spring配置使用註解注入beanSpringBean
- spring使用註解注入bean理解SpringBean
- 03-Spring IOC容器的基本使用(註解的使用)Spring
- Oracle Profile 使用詳解Oracle
- Spring profileSpring
- Spring管理的@Configuration註解使用Spring
- spring boot使用註解的方式整合mybaitsSpring BootAI
- Spring-05 使用註解開發Spring
- spring註解中使用properties檔案Spring
- Spring註解Spring
- 【Spring註解驅動開發】使用@Scope註解設定元件的作用域Spring元件
- Oracle Profile 使用詳解(轉)Oracle
- 【Spring註解】事務註解@TransactionalSpring
- SPRING實踐總結--引數註解的使用Spring
- Spring註解詳解Spring
- Spring中重要的註解Spring
- Spring AOP的AspectJ註解Spring
- Spring的註解開發Spring
- Spring中的@scope註解Spring
- Spring MVC常用的註解SpringMVC
- Spring快取註解@Cacheable、@CacheEvict、@CachePut使用Spring快取
- Spring 使用註解方式進行事物管理Spring
- Spring5:@Autowired註解、@Resource註解和@Service註解Spring
- Spring常用註解Spring
- Spring註解大全Spring
- Spring boot註解Spring Boot
- Spring新註解Spring