欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺談spring注解之@profile

 更新時(shí)間:2017年10月13日 14:14:54   作者:PointNet  
這篇文章主要介紹了淺談spring注解之@profile,@profile通過配置來改變參數(shù),這里整理的詳細(xì)的用法,有興趣的可以了解一下

spring中@profile與maven中的profile很相似,通過配置來改變參數(shù)。

例如在開發(fā)環(huán)境與生產(chǎn)環(huán)境使用不同的參數(shù),可以配置兩套配置文件,通過@profile來激活需要的環(huán)境,但維護(hù)兩套配置文件不如maven中維護(hù)一套配置文件,在pom中通過profile來修改配置文件的參數(shù)來的實(shí)惠。

也有例外,比如我在開發(fā)中調(diào)用商城接口經(jīng)常不能返回我需要的數(shù)據(jù),每次都需要mock數(shù)據(jù),所以我寫了一個(gè)mock參數(shù)的借口調(diào)用類,在開發(fā)環(huán)境中就使用這個(gè)類,測(cè)試環(huán)境與生產(chǎn)環(huán)境則使用正常的借口調(diào)用類,這樣就不用每次開發(fā)的時(shí)候去手動(dòng)改一些代碼。

注:@profile在3.2以后的版本支持方法級(jí)別和類級(jí)別,3.1版本只支持類級(jí)別。

言歸正傳,說下@profile使用方法。

一、注解配置

/** 配置生產(chǎn)環(huán)境調(diào)用類 **/ 
@service("productRpc") 
@profile("prop") 
public class ProductRpcImpl implements ProductRpc 
  public String productBaseInfo(Long sku){ 
    return productResource.queryBaseInfo(Long sku); 
  } 
} 
 
 
/** 配置生產(chǎn)環(huán)境調(diào)用類 **/ 
@service("productRpc") 
@profile("dev") 
public class MockProductRpcImpl implements ProductRpc 
  public String productBaseInfo(Long sku){ 
    return “iphone7”; 
  } 
} 
 
/** 調(diào)用類 **/ 
public class Demo(){ 
  @Resource(name="productRpc") 
  private ProductRpc productRpc; 
 
  public void demo(){ 
    String skuInfo = productRpc.productBaseInfo(123123L); 
    logger.info(skuInfo); 
  } 
} 

這樣就完成了基于注解的profile配置。當(dāng)配置為生產(chǎn)環(huán)境的時(shí)候會(huì)正常調(diào)用接口,當(dāng)為開發(fā)環(huán)境的時(shí)候回調(diào)用mock接口。

二、XML配置

<!-- 開發(fā)環(huán)境 --> 
<beans profile="dev"> 
  <bean id="beanname" class="com.pz.demo.ProductRPC"/> 
</beans> 
 
<!-- 生產(chǎn)環(huán)境 --> 
<beans profile="dev"> 
  <bean id="beanname" class="com.pz.demo.MockProductRPC"/> 
</beans> 

三、激活profile

注:spring在確定那個(gè)profile處于激活狀態(tài)的時(shí),需要依賴兩個(gè)獨(dú)立的屬性:spring.profiles.active和spring.profile.default。如果設(shè)置了spring.profiles.actives屬性,那么它的值就會(huì)用來確定那個(gè)profile是激活的。如果沒有設(shè)置spring.profiles.active屬性的話,那spring將會(huì)查找spring.profiles.default的值。如果spring.profiles.active和spring.profiles.default均沒有設(shè)置。(紅色部分未在項(xiàng)目中驗(yàn)證成功,待測(cè)試)

1.在servlet上下文中進(jìn)行配置(web.xml)

 <context-param> 
  <param-name>spring.profiles.default</param-name> 
  <param-value>dev</param-value> 
</context-param> 

2.作為DispatcherServlet的初始化參數(shù)

<servlet> 
  <servlet-name>springMVC</servlet-name> 
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
  <init-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value>classpath:/spring-servlet.xml</param-value> 
  </init-param> 
  <init-param> 
    <param-name>spring.profiles.default</param-name> 
    <param-value>dev</param-value> 
  </init-param> 
  <load-on-startup>1</load-on-startup> 
</servlet> 

3.spring-junit使用@ActiveProfiles進(jìn)行激活

@RunWith(SpringJUnit4ClassRunner.class) 
@ContextConfiguration(locations = "/spring-config.xml") 
@ActiveProfiles("dev") 
public class MainTest { 
  ... 
} 

4.作為JNDI條目

5.作為環(huán)境變量

6.作為JVM的系統(tǒng)屬性

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringBoot如何實(shí)現(xiàn)一個(gè)實(shí)時(shí)更新的進(jìn)度條的示例代碼

    SpringBoot如何實(shí)現(xiàn)一個(gè)實(shí)時(shí)更新的進(jìn)度條的示例代碼

    本文詳細(xì)的介紹了SpringBoot如何實(shí)現(xiàn)一個(gè)實(shí)時(shí)更新的進(jìn)度條,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • java計(jì)算兩個(gè)日期之前的天數(shù)實(shí)例(排除節(jié)假日和周末)

    java計(jì)算兩個(gè)日期之前的天數(shù)實(shí)例(排除節(jié)假日和周末)

    下面小編就為大家?guī)硪黄猨ava計(jì)算兩個(gè)日期之前的天數(shù)實(shí)例(排除節(jié)假日和周末)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-07-07
  • 詳解Spring中bean生命周期回調(diào)方法

    詳解Spring中bean生命周期回調(diào)方法

    本篇文章主要介紹了詳解Spring中bean生命周期回調(diào)方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-07-07
  • Spring?Security中的CORS詳解

    Spring?Security中的CORS詳解

    CORS(Cross-Origin?Resource?Sharing)是一種允許不同源之間進(jìn)行資源共享的W3C標(biāo)準(zhǔn),它通過在服務(wù)器端設(shè)置特定的HTTP響應(yīng)頭,實(shí)現(xiàn)了跨域請(qǐng)求的功能,這種機(jī)制要求瀏覽器和服務(wù)器的支持,本文給大家介紹Spring?Security中的CORS,感興趣的朋友一起看看吧
    2024-10-10
  • Java利用endorsed如何覆蓋jdk提供的類詳解

    Java利用endorsed如何覆蓋jdk提供的類詳解

    這篇文章主要給大家介紹了關(guān)于Java利用endorsed如何覆蓋jdk提供的類的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-09-09
  • Spring @Value注解失效問題解決方案

    Spring @Value注解失效問題解決方案

    這篇文章主要介紹了Spring @Value注解失效問題解決方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • JAVA 對(duì)接騰訊云直播的實(shí)現(xiàn)

    JAVA 對(duì)接騰訊云直播的實(shí)現(xiàn)

    這篇文章主要介紹了JAVA 對(duì)接騰訊云直播的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • 詳解在Spring3中使用注解(@Scheduled)創(chuàng)建計(jì)劃任務(wù)

    詳解在Spring3中使用注解(@Scheduled)創(chuàng)建計(jì)劃任務(wù)

    本篇文章主要介紹了詳解在Spring3中使用注解(@Scheduled)創(chuàng)建計(jì)劃任務(wù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-03-03
  • 使用java8的方法引用替換硬編碼的示例代碼

    使用java8的方法引用替換硬編碼的示例代碼

    這篇文章主要介紹了使用java8的方法引用替換硬編碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09
  • SpringBoot中@ConfigurationProperties 配置綁定

    SpringBoot中@ConfigurationProperties 配置綁定

    本文主要介紹了SpringBoot中@ConfigurationProperties 配置綁定,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11

最新評(píng)論