1:
@Component
public class SpringContextUtil implements ApplicationContextAware {
public static ApplicationContext applicationContext = null;
public SpringContextUtil() {
}
@SuppressWarnings("unchecked")
public static <T> T getBean(String beanName, Class<T> beanType) {
Assert.isTrue(applicationContext != null, "应用上下文不能为空");
Object bean = applicationContext.getBean(beanName);
return bean == null ? null : (T)bean;
}
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
SpringContextUtil.applicationContext = applicationContext;
}
}
public class TransactionUtil {
/**
* 获取事务模板
*
* @return
*/
public static TransactionTemplate getTransactionTemplate(){
return SpringContextUtil.getBean("transactionTemplate", TransactionTemplate.class);
}
}
return TransactionUtil.getTransactionTemplate().execute(new TransactionCallback<XXXXX>() {
@Override
public XXXXXdoInTransaction(TransactionStatus status) {
事务代码
}
});
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<tx:annotation-driven transaction-manager="transactionManager"/>
<!-- 事务模板 -->
<bean id="transactionTemplate" class="org.springframework.transaction.support.TransactionTemplate">
<property name="transactionManager">
<ref bean="transactionManager"/>
</property>
</bean>