spring事务应用方式

今天有同事问一个j2ee事务的问题,做个小的总结:
1、基于注解的事务
在类和方法上配置类似
 @Transactional(propagation=Propagation.SUPPORTS,readOnly=true)
代码的
2、基于配置文件的事务
在xml文件配置类似















配置的
3、硬编码的事务
这种也是我同事需要的那种,希望硬编码控制的类似
 /**
* CardRecordService.java
* org.crazystone.car.service
*
* Function: TODO
*
* ver date author
* ──────────────────────────────────
* 2012-8-30 zhangzenglun
*
* Copyright (c) 2012, TNT All Rights Reserved.
*/

package org.crazystone.car.service;

import org.crazystone.car.dao.CarRecordDAO;
import org.crazystone.car.util.model.CarRecord;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.TransactionStatus;

/**
* ClassName:CardRecordService
*
* @author zhangzenglun
* @version 1.0
* @since v1.0
* @Date 2012-8-30 下午6:37:38
*/


@Service
public class CardRecordService {
@Autowired
CarRecordDAO carRecordDAO;
@Autowired
PlatformTransactionManager transactionManager;


public void batchSave() {

//DefaultTransactionDefinition definition = new DefaultTransactionDefinition();
TransactionStatus transactionStatus = transactionManager.getTransaction(null);
try {
CarRecord record = null;

//record = new CarRecord();
record.setCarid("131");
record.setCartype("d");
record.setCollectionAuthority("d");
record.setDealSign("");
this.carRecordDAO.insertNoPk(record);
record = new CarRecord();
record.setCarid("121");
record.setCartype("d");
record.setCollectionAuthority("d");
record.setDealSign("");
this.carRecordDAO.insertNoPk(record);
transactionManager.commit(transactionStatus);
} catch (Exception e) {
e.printStackTrace();
transactionManager.rollback(transactionStatus);
}


}

public void batchSave2() {
//DefaultTransactionDefinition definition = new DefaultTransactionDefinition();
TransactionStatus globalTransactionStatus = transactionManager.getTransaction(null);
try {

CarRecord record = null;
record = new CarRecord();
record.setCarid("131");
record.setCartype("d");
record.setCollectionAuthority("d");
record.setDealSign("");
this.carRecordDAO.insertNoPk(record);


TransactionStatus localTransactionStatus = transactionManager
.getTransaction(null);
record = new CarRecord();
record = null;
record.setCarid("121");
record.setCartype("d");
record.setCollectionAuthority("d");
record.setDealSign("");
this.carRecordDAO.insertNoPk(record);
transactionManager.commit(localTransactionStatus);

transactionManager.commit(globalTransactionStatus);


} catch (Exception e) {
transactionManager.rollback(globalTransactionStatus);
}




}

}
这种代码的

你可能感兴趣的:(spring事务应用方式)