關於事務管理器

1.proxy-target-class=“true” 與proxy-target-class="false"的區別
<tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true"/>
  注意:proxy-target-class屬性值決定是基於接口的還是基於類的代理被創建。如果proxy-target-class 屬性值被設置爲true,那麼基於類的代理將起作用(這時需要cglib庫)。如果proxy-target-class屬值被設置爲false或者這個屬性被省略,那麼標準的JDK 基於接口的代理將起作用。
用JDK實現AOP還是CGlib實現AOP的條件就是被代理類是否實現了接口,如果實現了接口那隻能用JDK

2.mybatis手動提交事務:

private DataSourceTransactionManager transactionManager = SpringContextUtils
			.getBean(DataSourceTransactionManager.class);

TransactionStatus txStatus = transactionManager.getTransaction(new DefaultTransactionDefinition());
					try {
						strategySellService.updateById(sell);
						strategyService.updateById(sgy);
						memberService.updateById(member);
						capitalflowService.insert(cap);
					} catch (Exception e) {
						transactionManager.rollback(txStatus);
						logger.info("訂單編號爲{}的賣出策略撤銷失敗!", sell.getOrdersno());
						e.printStackTrace();
						continue;
					}
					transactionManager.commit(txStatus);

待續!!!!!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章