maintestfortransactiontemplate.java

来自「随书光盘:精通Sping 2.0 的随书源代码」· Java 代码 · 共 64 行

JAVA
64
字号
package org.springframework.samples;

import java.util.List;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.ListableBeanFactory;
import org.springframework.beans.factory.generic.GenericBeanFactoryAccessor;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.samples.petclinic.Clinic;
import org.springframework.samples.petclinic.Owner;
import org.springframework.transaction.TransactionDefinition;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.support.TransactionCallback;
import org.springframework.transaction.support.TransactionCallbackWithoutResult;
import org.springframework.transaction.support.TransactionTemplate;

/**
 * 
 * @author worldheart
 *
 */
public class MainTestForTransactionTemplate {

	private static final Log log = LogFactory.getLog(MainTestForTransactionTemplate.class);
	
	public static void main(String[] args) {		
		ListableBeanFactory cbf = new ClassPathXmlApplicationContext("ac6.xml");		
		GenericBeanFactoryAccessor gbfa = new GenericBeanFactoryAccessor(cbf);
		
		final TransactionTemplate tt = gbfa.getBean("transactionTemplate");		
		
		final Clinic clinic = gbfa.getBean("hsqlClinic");
		
		List list = (List)tt.execute(new TransactionCallback(){
			public Object doInTransaction(TransactionStatus status) {				
				return clinic.findOwners("");
			}
		});
		
		for(Object owner: list){
			Owner own = (Owner)owner;
			log.info(own.getId() + "," + own.getFirstName() + "," + own.getLastName());
		}
		
		final Owner owner = new Owner();

		owner.setAddress("XiDan");
		owner.setCity("Beijing");
		owner.setFirstName("FirstName");
		owner.setLastName("LastName");
		owner.setTelephone("888888");
		tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
		tt.execute(new TransactionCallbackWithoutResult(){
			@Override
			protected void doInTransactionWithoutResult(TransactionStatus status) {
				clinic.storeOwner(owner);
			}
		});
		
	}

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?