spring 事務配置
<
!-- 事務配置 -->
"transactionmanager" class=
"org.springframework.jdbc.datasource.datasourcetransactionmanager"
>
"datasource" ref=
"shardingdatasource" />
"transactionmanager" />
"txadvice" transaction-manager=
"transactionmanager"
>
"add*" propagation=
"required"/>
"update*" propagation=
"required"/>
"delete*" propagation=
"required"/>
"find*" propagation=
"supports"/>
"*" propagation=
"supports"/>
"execution(* com.sharding.demo.serviceimpl.*.*(..))" id=
"mypoint"/>
"txadvice" pointcut-ref=
"mypoint"/>
以上配置,但是在執行時,發現事務不生效,在碰到異常後,發現order表資料沒有回滾。
@override
@transactional
public long executeorder(string t) throws buystockexception
原因:在配置註解掃瞄時,將service層也掃瞄到了,只要將配置修改為只負責掃瞄controller層,不要掃瞄需要配置事物回滾的service層就可以了。
<
!--註解掃瞄-->
"com.sharding.demo.controller"/>
Transactional註解初見
之前一直使用宣告式事務,切面程式設計的配置方式讓程式設計者忘記了事務的存在,一旦離開,發現這個事務還是蠻重要的 public inte ce userservice transactional public class userserviceimpl implements userservice p...
Transactional註解詳解
預設遇到throw new runtimeexception 會回滾 需要捕獲的throw new exception 不會回滾 指定回滾 transactional rollbackfor exception.class public void methodname 指定不回滾 transacti...
Transactional註解用法
1.事務隔離級別 隔離級別是指若干個併發的事務之間的隔離程度。transactiondefinition 介面中定義了五個表示隔離級別的常量 2.事務傳播行為 所謂事務的傳播行為是指,如果在開始當前事務之前,乙個事務上下文已經存在,此時有若干選項可以指定乙個事務性方法的執行行為。在transacti...