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);
待續!!!!!!!