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

解決springboot環(huán)境切換失效的問(wèn)題

 更新時(shí)間:2021年09月22日 09:11:45   作者:快樂(lè)檸檬  
這篇文章主要介紹了解決springboot環(huán)境切換失效的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

springboot環(huán)境切換失效

概述

最近在使用-Dspring.profiles.active=te 來(lái)切換spring-boot的環(huán)境時(shí),發(fā)現(xiàn)日志打印的是:

...ApplicationStartUp - 
The following profiles are active: de

也就是說(shuō),參數(shù)失效了。

debug調(diào)試時(shí),發(fā)現(xiàn)spring-boot讀取的也是de,不是te。

解決

下載了一個(gè)新的tomcat,然后重新發(fā)布程序,設(shè)置參數(shù),啟動(dòng),發(fā)現(xiàn)環(huán)境正常切換了過(guò)來(lái)。

SpringBoot多數(shù)據(jù)源切換無(wú)效(不切換)

SpringBoot的多數(shù)據(jù)源實(shí)現(xiàn)以實(shí)現(xiàn)AbstractRoutingDataSource#determineCurrentLookupKey()來(lái)達(dá)到多個(gè)數(shù)據(jù)源動(dòng)態(tài)切換的目的。

網(wǎng)上有很多的文章可以獲取具體方法,就不在講了。

項(xiàng)目中需要用到多數(shù)據(jù)源MySQL和SQLServer兩個(gè)數(shù)據(jù)庫(kù),系統(tǒng)要保持兩個(gè)數(shù)據(jù)庫(kù)的數(shù)據(jù)同步,就需要來(lái)回切數(shù)據(jù)源來(lái)操作數(shù)據(jù)庫(kù)。

剛寫(xiě)好了數(shù)據(jù)從MySQL同步到SQLServer中的代碼,測(cè)試發(fā)現(xiàn)數(shù)據(jù)源不能切換到SQLServer數(shù)據(jù)庫(kù)連接,排查問(wèn)題~~省略n多個(gè)小時(shí)后,

源碼解析等理論就不寫(xiě)了(重要的是不會(huì)寫(xiě))直接上修改方案

CSDN查到的方案有

  • 數(shù)據(jù)源切換和事務(wù)的注入順序問(wèn)題,像下面這樣的,加入@Order注解。測(cè)試無(wú)效(可能我搭的架構(gòu)有問(wèn)題)
@Aspect
@Slf4j
@Order(-1) // 保證優(yōu)先級(jí)
@Component
public class DatasourceAspect {
    @Pointcut("@within(DataSource)|| @annotation(DataSource)")
    public void pointcut() {
    }
    @Before("pointcut() && @annotation(dataSource)")
    public void before(DataSource dataSource) {
        DatasourceContextHolder.setDatasource(dataSource.value().getDbName());
    }
    @After("pointcut()")
    public void after() {
        DatasourceContextHolder.clear();
    }
}
  • Mapper(Dao)層切換數(shù)據(jù)源,反正我沒(méi)找到怎么個(gè)用法,所以沒(méi)有測(cè)試。
  • 還有下面的這種寫(xiě)法。測(cè)試有效的
@DataSource(DatasourceEnum.DB3)
   public int insertSelective( String hbNo, ) throws Exception{
       CcpHeaderSqlServer record = new CcpHeaderSqlServer();      
       if (log.isDebugEnabled()) {
           log.debug("同步到SQLServer的數(shù)據(jù)對(duì)象:[{}]", record);
       }    
    ......
    
    // 這種調(diào)用保存數(shù)據(jù)的方法,有效切換數(shù)據(jù)源
       XXXService service = SpringContextHolder.getBean(XXXService.class);
       return service.saveHeader(record);
   }
   @DataSource(DatasourceEnum.DB3)
   public int saveHeader(XXXEntity record) {
       return xxxMapper.insertSelective(record);
   }

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 較詳細(xì)的JNI簡(jiǎn)介

    較詳細(xì)的JNI簡(jiǎn)介

    JNI是本地語(yǔ)言編程接口。它允許運(yùn)行在JVM中的Java代碼和用C、C++或匯編寫(xiě)的本地代碼相互操作。下面通過(guò)本文給大家分享JNI簡(jiǎn)介,感興趣的朋友一起看看吧
    2017-10-10
  • Java?流處理之收集器詳解

    Java?流處理之收集器詳解

    這篇文章主要介紹了Java?流處理之收集器,本文以記錄?Record?為例,結(jié)合示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-09-09
  • Lombok插件有望被Intellij IDEA收編以改善兼容性問(wèn)題(推薦)

    Lombok插件有望被Intellij IDEA收編以改善兼容性問(wèn)題(推薦)

    這篇文章主要介紹了Lombok插件有望被Intellij IDEA收編以改善兼容性問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08
  • SpringBoot實(shí)現(xiàn)接口統(tǒng)一前綴

    SpringBoot實(shí)現(xiàn)接口統(tǒng)一前綴

    本文主要介紹了SpringBoot實(shí)現(xiàn)接口統(tǒng)一前綴,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • springboot框架各個(gè)層次基礎(chǔ)詳解

    springboot框架各個(gè)層次基礎(chǔ)詳解

    這篇文章主要介紹了springboot框架各個(gè)層次基礎(chǔ),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • Spring注解解析之@ImportResource

    Spring注解解析之@ImportResource

    之前我們使用spring,最多的還是通過(guò)xml配置文件的方式來(lái)配置spring bean等內(nèi)容,隨著注解的廣泛應(yīng)用和spring4中Java config的引入,xml配置文件方式逐步被替換,但是如果是想要使用xml配置文件方式的話,也可以通過(guò)@ImportResource注解來(lái)實(shí)現(xiàn),下面我們來(lái)一起看下如何使用.
    2021-05-05
  • 詳解Java單例模式中的餓漢和懶漢模式

    詳解Java單例模式中的餓漢和懶漢模式

    這篇文章主要介紹了詳解Java單例模式中的餓漢和懶漢模式,單例模式中有兩種模式一種是餓漢模式,一種是懶漢模式,那么他們有什么區(qū)別呢,需要的朋友可以參考下本文
    2023-04-04
  • 使用mybatis的@Interceptor實(shí)現(xiàn)攔截sql的方法詳解

    使用mybatis的@Interceptor實(shí)現(xiàn)攔截sql的方法詳解

    攔截器是一種基于 AOP(面向切面編程)的技術(shù),它可以在目標(biāo)對(duì)象的方法執(zhí)行前后插入自定義的邏輯,本文給大家介紹了使用mybatis的@Interceptor實(shí)現(xiàn)攔截sql的方法,需要的朋友可以參考下
    2024-03-03
  • 詳解Spring boot+CXF開(kāi)發(fā)WebService Demo

    詳解Spring boot+CXF開(kāi)發(fā)WebService Demo

    這篇文章主要介紹了詳解Spring boot+CXF開(kāi)發(fā)WebService Demo,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2017-05-05
  • Java空指針異常處理之判空、Optional與Assert解析

    Java空指針異常處理之判空、Optional與Assert解析

    本文將深入探討三種處理空指針異常的方法:傳統(tǒng)的判空檢查、Java 8引入的Optional類以及使用斷言(Assert),通過(guò)代碼示例和應(yīng)用場(chǎng)景分析,幫助開(kāi)發(fā)者理解并選擇最適合的方案以提升程序健壯性,感興趣的朋友一起看看吧
    2025-01-01

最新評(píng)論

义马市| 富顺县| 蕲春县| 抚松县| 开平市| 绍兴县| 滕州市| 宁晋县| 伊吾县| 台中市| 资源县| 滕州市| 莫力| 龙口市| 吕梁市| 巴青县| 望谟县| 明光市| 辽阳县| 尚志市| 保靖县| 伊金霍洛旗| 乐至县| 永和县| 潜山县| 松潘县| 庆阳市| 吴川市| 剑河县| 墨江| 潍坊市| 双峰县| 辛集市| 柘城县| 长宁县| 林甸县| 凌源市| 克什克腾旗| 河南省| 吴忠市| 定襄县|