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

Spring多數(shù)據(jù)源導(dǎo)致配置失效的解決

 更新時(shí)間:2024年01月31日 14:38:37   作者:droidcoffee-  
這篇文章主要介紹了Spring多數(shù)據(jù)源導(dǎo)致配置失效的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

spring多數(shù)據(jù)源導(dǎo)致配置失效

<!-- 切換數(shù)據(jù)源 -->
	<bean id="dataSourceAdvice" class="com.xxxx.app.datasource.DataSourceAdvice" />
	<!-- 配置事務(wù)切面 -->
	<aop:config>
		<aop:pointcut id="serviceOperation" expression="execution(* com.xxxx..*.*(..))" />
		<aop:advisor pointcut-ref="serviceOperation" advice-ref="dataSourceAdvice" />
	</aop:config>

如果在springApplication.xml中配置的, 那么expression配置的相關(guān)的 包,必須在springmvc.xml中被掃描到

<context:component-scan base-package="com.xxxx.xxxxxx" />

如果不配置的話(huà) 會(huì)導(dǎo)致失敗

spring配置多數(shù)據(jù)源問(wèn)題,如何彼此隔離互相不影響

配置2個(gè)數(shù)據(jù)源,事物切面配置:“事物添加方法前綴”配置相同并且“事物的切入點(diǎn)”如下配置,如果其中任何一個(gè)數(shù)據(jù)源連接不上事物提交不了,數(shù)據(jù)保存不成功

事物添加方法前綴:

  • 第一個(gè):方法前綴:save
<tx:advice id="shardTxAdvice" transaction-manager="shardTransactionManager">
<tx:attributes>
<tx:method name="save*" propagation="REQUIRED" read-only="false"
rollback-for="java.lang.Exception" />
..........
..........
</tx:attributes>
</tx:advice>
  • 第二個(gè):方法前綴:save
<tx:advice id="qualTxAdvice" transaction-manager="qualTransactionManager">
<tx:attributes>
<tx:method name="save*" propagation="REQUIRED" read-only="false"
rollback-for="java.lang.Exception" />
.........
.........
</tx:attributes>
</tx:advice>

事物的切入點(diǎn):

<aop:config>
<aop:pointcut id="bizMethods"
expression="execution(* com.cn.*.service.*.*(..)) or execution(* com.cn.*.*.service.*.*(..)) or execution(* com.cn.*.*.*.*(..))" />
<aop:advisor advice-ref="shardTxAdvice" pointcut-ref="bizMethods" />
<aop:advisor advice-ref="qualTxAdvice" pointcut-ref="bizMethods" />
</aop:config>

方案一

如果確定了,其中一個(gè)數(shù)據(jù)源只查詢(xún)使用沒(méi)有數(shù)據(jù)維護(hù),不為其配置事物。

方案二

如果2數(shù)據(jù)源都需要對(duì)數(shù)據(jù)維護(hù),同時(shí)保證2個(gè)數(shù)據(jù)源的事物對(duì)所有的服務(wù)層一致,可以將2個(gè)數(shù)據(jù)源的事物添加方法前綴配置的不一樣.

這種情況下,試驗(yàn)中證明:

1:?jiǎn)为?dú)操作其中一數(shù)據(jù)源的方法開(kāi)啟事物,其他數(shù)據(jù)源連接失敗也不相互影響,

2:操作2個(gè)數(shù)據(jù)源的方法,其中任何一個(gè)數(shù)據(jù)連接失敗,事物仍然會(huì)回滾。

事物添加方法前綴:

  • 第一個(gè):方法前綴:save
<tx:advice id="shardTxAdvice" transaction-manager="shardTransactionManager">
<tx:attributes>
<tx:method name="save*" propagation="REQUIRED" read-only="false"
rollback-for="java.lang.Exception" />
..........
..........
</tx:attributes>
</tx:advice>
  • 第二個(gè):方法前綴:qual_save
<tx:advice id="qualTxAdvice" transaction-manager="qualTransactionManager">
<tx:attributes>
<tx:method name="qual_save*" propagation="REQUIRED" read-only="false"
rollback-for="java.lang.Exception" />
.........
.........
</tx:attributes>
</tx:advice>

事物的切入點(diǎn):

不變,保證2個(gè)數(shù)據(jù)源事物對(duì)“所有的服務(wù)層一致”

<aop:config>
<aop:pointcut id="bizMethods"
expression="execution(* com.cn.*.service.*.*(..)) or execution(* com.cn.*.*.service.*.*(..)) or execution(* com.cn.*.*.*.*(..))" />
<aop:advisor advice-ref="shardTxAdvice" pointcut-ref="bizMethods" />
<aop:advisor advice-ref="qualTxAdvice" pointcut-ref="bizMethods" />
</aop:config>

方案三

事物添加方法前綴相同,修改不同事物的切入點(diǎn)

Spring的AOP應(yīng)該是可以把不同的事物,插入到不同的類(lèi)和方法中。

<!-- 事務(wù)范圍aop--> 指定包下某個(gè)類(lèi)的方法使用新的數(shù)據(jù)源事物
<aop:config>
<aop:pointcut id="bigbizMethods"
expression="execution(* com.cn.sp.sc.service..CouponBigDataService.*(..))" />
<aop:advisor advice-ref="qualTxAdvice" pointcut-ref="bigbizMethods" />
</aop:config>

也許有更好的方案解決,我實(shí)驗(yàn)是這3種情況下的方法。

總結(jié)

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

相關(guān)文章

  • SpringBoot Web詳解靜態(tài)資源規(guī)則與定制化處理

    SpringBoot Web詳解靜態(tài)資源規(guī)則與定制化處理

    這篇文章主要介紹了SpringBoot web場(chǎng)景的靜態(tài)資源規(guī)則與定制化,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-06-06
  • Spring框架中一個(gè)有用的小組件之Spring Retry組件詳解

    Spring框架中一個(gè)有用的小組件之Spring Retry組件詳解

    Spring Retry 是從 Spring batch 中獨(dú)立出來(lái)的一個(gè)功能,主要實(shí)現(xiàn)了重試和熔斷,對(duì)于那些重試后不會(huì)改變結(jié)果,毫無(wú)意義的操作,不建議使用重試,今天通過(guò)本文給大家介紹Spring Retry組件詳解,感興趣的朋友一起看看吧
    2021-07-07
  • 關(guān)于@DS注解切換數(shù)據(jù)源失敗的原因?qū)崙?zhàn)記錄

    關(guān)于@DS注解切換數(shù)據(jù)源失敗的原因?qū)崙?zhàn)記錄

    項(xiàng)目配置了多個(gè)數(shù)據(jù)源,需要使用@DS注解來(lái)切換數(shù)據(jù)源,但是卻遇到了問(wèn)題,下面這篇文章主要給大家介紹了關(guān)于@DS注解切換數(shù)據(jù)源失敗原因的相關(guān)資料,需要的朋友可以參考下
    2023-05-05
  • Hibernate核心類(lèi)和接口的詳細(xì)介紹

    Hibernate核心類(lèi)和接口的詳細(xì)介紹

    今天小編就為大家分享一篇關(guān)于Hibernate核心類(lèi)和接口的詳細(xì)介紹,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-03-03
  • SpringBoot Redis配置多數(shù)據(jù)源的項(xiàng)目實(shí)踐

    SpringBoot Redis配置多數(shù)據(jù)源的項(xiàng)目實(shí)踐

    springboot中默認(rèn)的redis配置是只能對(duì)單個(gè)redis庫(kù)進(jìn)行操作的, 那么我們需要多個(gè)庫(kù)操作的時(shí)候這個(gè)時(shí)候就可以采用redis多數(shù)據(jù)源 ,本文就介紹了SpringBoot Redis配置多數(shù)據(jù)源,感興趣的可以了解一下
    2023-07-07
  • Java用三元運(yùn)算符判斷奇數(shù)和偶數(shù)的簡(jiǎn)單實(shí)現(xiàn)

    Java用三元運(yùn)算符判斷奇數(shù)和偶數(shù)的簡(jiǎn)單實(shí)現(xiàn)

    這篇文章主要介紹了Java用三元運(yùn)算符判斷奇數(shù)和偶數(shù)的簡(jiǎn)單實(shí)現(xiàn),需要的朋友可以參考下
    2014-02-02
  • Java面試題沖刺第十五天--設(shè)計(jì)模式

    Java面試題沖刺第十五天--設(shè)計(jì)模式

    這篇文章主要為大家分享了最有價(jià)值的三道關(guān)于設(shè)計(jì)模式的面試題,涵蓋內(nèi)容全面,包括數(shù)據(jù)結(jié)構(gòu)和算法相關(guān)的題目、經(jīng)典面試編程題等,感興趣的小伙伴們可以參考一下
    2021-08-08
  • Java異常詳解_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Java異常詳解_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    異常是Java語(yǔ)言中的一部分,它代表程序中由各種原因引起的“不正常”因素。下面通過(guò)本文給大家介紹java異常的相關(guān)知識(shí),感興趣的朋友一起看看吧
    2017-06-06
  • 通過(guò)Class類(lèi)獲取對(duì)象(實(shí)例講解)

    通過(guò)Class類(lèi)獲取對(duì)象(實(shí)例講解)

    下面小編就為大家?guī)?lái)一篇通過(guò)Class類(lèi)獲取對(duì)象(實(shí)例講解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06
  • SpringMVC實(shí)現(xiàn)獲取請(qǐng)求參數(shù)方法詳解

    SpringMVC實(shí)現(xiàn)獲取請(qǐng)求參數(shù)方法詳解

    Spring MVC 是 Spring 提供的一個(gè)基于 MVC 設(shè)計(jì)模式的輕量級(jí) Web 開(kāi)發(fā)框架,本質(zhì)上相當(dāng)于 Servlet,Spring MVC 角色劃分清晰,分工明細(xì),這篇文章主要介紹了SpringMVC實(shí)現(xiàn)獲取請(qǐng)求參數(shù)方法
    2022-09-09

最新評(píng)論

浑源县| 镇平县| 东乡| 洪雅县| 壶关县| 信阳市| 宁远县| 陇西县| 赤峰市| 普兰店市| 龙游县| 静安区| 长春市| 深水埗区| 马边| 拉萨市| 江永县| 商都县| 那曲县| 东港市| 铜梁县| 广州市| 禄劝| 太湖县| 衡阳县| 邹城市| 郸城县| 福清市| 柳州市| 黄梅县| 大连市| 驻马店市| 旅游| 内黄县| 清镇市| 尉犁县| 锡林郭勒盟| 岳池县| 九龙城区| 虹口区| 开原市|