最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺談spring注解之@profile

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

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

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

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

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

言歸正傳,說下@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)境的時候會正常調(diào)用接口,當(dāng)為開發(fā)環(huán)境的時候回調(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在確定那個profile處于激活狀態(tài)的時,需要依賴兩個獨立的屬性:spring.profiles.active和spring.profile.default。如果設(shè)置了spring.profiles.actives屬性,那么它的值就會用來確定那個profile是激活的。如果沒有設(shè)置spring.profiles.active屬性的話,那spring將會查找spring.profiles.default的值。如果spring.profiles.active和spring.profiles.default均沒有設(shè)置。(紅色部分未在項目中驗證成功,待測試)

1.在servlet上下文中進行配置(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進行激活

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

4.作為JNDI條目

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

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

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

相關(guān)文章

  • Mybatis分頁插件PageHelper的配置和簡單使用方法(推薦)

    Mybatis分頁插件PageHelper的配置和簡單使用方法(推薦)

    在使用Java Spring開發(fā)的時候,Mybatis算是對數(shù)據(jù)庫操作的利器了。這篇文章主要介紹了Mybatis分頁插件PageHelper的配置和使用方法,需要的朋友可以參考下
    2017-12-12
  • Java中自定義LRU緩存詳解

    Java中自定義LRU緩存詳解

    這篇文章主要介紹了Java中自定義LRU緩存詳解,基于LRU算法的緩存系統(tǒng),可以在達到緩存容量上限時,清理最近最少使用的數(shù)據(jù),為新的數(shù)據(jù)的插入騰出空間,需要的朋友可以參考下
    2023-09-09
  • IDEA中Git版本回退的兩種實現(xiàn)方案

    IDEA中Git版本回退的兩種實現(xiàn)方案

    作為開發(fā)者,代碼版本回退是日常高頻操作,IntelliJ IDEA集成了強大的Git工具鏈,但面對reset和revert兩種核心回退方案,許多開發(fā)者仍存在選擇困惑,本文將解析Reset與Revert兩種方案的操作細節(jié)及避坑指南,需要的朋友可以參考下
    2025-03-03
  • java開發(fā)之內(nèi)部類的用法

    java開發(fā)之內(nèi)部類的用法

    本篇文章介紹了,java開發(fā)之內(nèi)部類的用法。需要的朋友參考下
    2013-05-05
  • MyBatis-Plus 使用枚舉自動關(guān)聯(lián)注入

    MyBatis-Plus 使用枚舉自動關(guān)聯(lián)注入

    本文主要介紹了MyBatis-Plus 使用枚舉自動關(guān)聯(lián)注入,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-06-06
  • Mybatis Plus LambdaQueryWrapper的具體用法

    Mybatis Plus LambdaQueryWrapper的具體用法

    Mybatis Plus 在其基礎(chǔ)上擴展了 LambdaQueryWrapper,LambdaQueryWrapper 提供了更加簡便的查詢語法,同時也避免了SQL注入的風(fēng)險,感興趣的可以了解一下
    2023-11-11
  • SpringBoot簡單實現(xiàn)文件上傳

    SpringBoot簡單實現(xiàn)文件上傳

    這篇文章主要介紹了SpringBoot簡單實現(xiàn)文件上傳,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,感興趣的小伙伴可以參考一下
    2022-09-09
  • MyBatis中防止SQL注入講解

    MyBatis中防止SQL注入講解

    這篇文章主要介紹了MyBatis中防止SQL注入,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2021-12-12
  • java?spring?validation?自動、手動校驗

    java?spring?validation?自動、手動校驗

    HibernateValidator簡化了Java開發(fā)中的參數(shù)校驗過程,提供自動和手動兩種校驗方式,通過引入相關(guān)依賴并使用@Validated注解,可以實現(xiàn)自動校驗,手動校驗則需要使用ValidatorUtils類,此方法有效減少代碼重復(fù),提高開發(fā)效率
    2024-09-09
  • 使用Rhino讓java執(zhí)行javascript的方法實例

    使用Rhino讓java執(zhí)行javascript的方法實例

    這篇文章主要介紹了java使用Rhino執(zhí)行javascript的方法,Rhino由Mozilla開發(fā),是 JavaScript 一種基于Java的實現(xiàn)
    2013-12-12

最新評論

通河县| 富源县| 嘉禾县| 云南省| 区。| 同仁县| 天峨县| 沅江市| 赤城县| 光山县| 梓潼县| 景泰县| 兴化市| 芒康县| 游戏| 嘉荫县| 苏尼特左旗| 藁城市| 武宁县| 永新县| 巢湖市| 乐陵市| 鞍山市| 湖口县| 宜良县| 新乐市| 罗田县| 镶黄旗| 青海省| 肇庆市| 满洲里市| 荔浦县| 闻喜县| 清水县| 平泉县| 乌兰察布市| 昭通市| 沙河市| 广丰县| 三原县| 云梦县|