`

Action类中使用Spring注入方式的TransactionTemplate

    博客分类:
  • SSH
阅读更多

一、在Spring的配置文件applicationContext.xml中配置事务管理器对象transactionManager:

<!-- 使用注解方式定义事务 -->
	<tx:annotation-driven proxy-target-class="true" transaction-manager="transactionManager" />

	<!-- 配置事务管理器 -->
	<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
		<property name="sessionFactory" ref="sessionFactory" />
	</bean>
....

 二、在Action类中注入transactionManager,便于引入事务控制:

       /**
        * spring提供的事务支持
     */
	private TransactionTemplate transactionTemplate;
	
	@Resource(name="transactionManager")
	public void setTransactionTemplate(PlatformTransactionManager transactionManager) {
		this.transactionTemplate = new TransactionTemplate(transactionManager);
	}

 这里可以把其放入BaseAction中,便于继承于他的子类直接使用,将访问修饰符改为protected:

 

      /**
       * spring提供的事务支持
     */
	protected TransactionTemplate transactionTemplate;
	
	@Resource(name="transactionManager")
	public void setTransactionTemplate(PlatformTransactionManager transactionManager) {
		this.transactionTemplate = new TransactionTemplate(transactionManager);
	}

 

三、在Action的一些方法中使用Spring提供的事务支持

this.transactionTemplate.execute(new TransactionCallback() {
			public Object doInTransaction(TransactionStatus transactionstatus) {
				try{
					productService.saveEntity(product);  // 保存商品
...
...
...					prostandvalueService.save(pdv); // 保存商品规格的值
				}catch(Exception e){
					if(log.isErrorEnabled()){
            				log.error("商品保存出错!"+e.toString());
            				}
					// 事务回退
                    		transactionstatus.setRollbackOnly();
					addActionError("保存失败!<br/>"+e.getMessage());
					return ERROR;
				}
				
				return null;
			}
		});

 

 

 

 

 

 

分享到:
评论

相关推荐

    spring.net中文手册在线版

    12.6.使用ProxyFactory类以编程方式创建AOP代理 12.7.管理目标对象 12.8.使用“自动代理”功能 12.8.1.自动代理对象的定义 12.8.1.1.ObjectNameAutoProxyCreator 12.8.1.2.DefaultAdvisorAutoProxyCreator 12.8.1.3....

    Spring-Reference_zh_CN(Spring中文参考手册)

    6.8.1. 在Spring中使用AspectJ来为domain object进行依赖注入 6.8.1.1. @Configurable object的单元测试 6.8.1.2. 多application context情况下的处理 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来...

    Spring中文帮助文档

    6.8.1. 在Spring中使用AspectJ进行domain object的依赖注入 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7...

    Spring 2.0 开发参考手册

    6.8.1. 在Spring中使用AspectJ来为domain object进行依赖注入 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ Load-time weaving(LTW) 6.9. ...

    创建SpringBean配置工具类

    创建SpringBean配置工具类(安全)如: &lt;bean id=... scope="prototype"&gt;&lt;/bean&gt;

    Spring API

    6.8.1. 在Spring中使用AspectJ进行domain object的依赖注入 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7...

    spring chm文档

    6.8.1. 在Spring中使用AspectJ来为domain object进行依赖注入 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ Load-time weaving(LTW) 6.9. ...

    基于spring+struts2+springJDBC的轻量级项目demo

    基于spring+struts2+springJDBC编写的轻量级项目 service、dao、action已经写了对应的demo 主要是使用spring的JdbcTemplate和TransactionTemplate

    Spring事务管理4种方式

    Spring事务管理4种方式 入门级 最简单demo PlatformTransactionManager TransactionTemplate

    Spring高级之注解驱动开发视频教程

    系统的学习Spring框架中各个部分,掌握Spring中一些高级特性的使用。 l Spring IoC n 设计模式-工厂模式 n 基础应用-入门案例 n 基础应用-常用注解使用场景介绍及入门 n 高级特性-自定义BeanNameGenerator n 高级...

    spring_tx编程式事务代码

    Spring为了简化事务管理的代码:提供了模板类 TransactionTemplate,所以手动编程的方式来管理事务,只需要使用该模板类即可

    springboot+redis+mybatis事务和引擎模板

    springboot项目集合了mybatis分页查询和dbcp数据源配置,使用redis缓存都有详细的配置测试方法,封装的工具类常用的集合、对象、设置超时时间和判断key是否存在等详细方法

    spring编程式事务实现

    演示了spring编程式事务的实现,通过TransactionTemplate模板进行事务控制

    springMVC + Hibernate 工程模板

    spring增强性mvc hibernate dao 操作(一个basedao全部搞定) 两种配置:oracle mysql,切换数据库只要把SessionFactory的配置文件改成对应就可以了 c3p0配置:mysql调试通过,oracle由于存在问题,未配置 spring...

    SPRING API 2.0.CHM

    All Classes AbstractAdvisorAutoProxyCreator AbstractApplicationContext AbstractApplicationEventMulticaster AbstractAspectJAdvice AbstractAspectJAdvisorFactory AbstractAspectJAdvisorFactory....

    请教:spring事务不起作用

    NULL 博文链接:https://tywo45.iteye.com/blog/267836

    spring-framework-reference-4.1.2

    3. New Features and Enhancements in Spring Framework 4.0 ............................................ 17 3.1. Improved Getting Started Experience .........................................................

    火炬博客系统7

    Struts框架中Controller角色是由一个中心Servlet类和众多Action类合作扮演的,中心Servlet类为控制器提供中心控制点来初步处理所有的用户请求,并选择一个Action类处理具体业务逻辑。 Struts负责管理用户的请求...

    火炬博客系统5

    Struts框架中Controller角色是由一个中心Servlet类和众多Action类合作扮演的,中心Servlet类为控制器提供中心控制点来初步处理所有的用户请求,并选择一个Action类处理具体业务逻辑。 Struts负责管理用户的请求...

    火炬博客系统6

    Struts框架中Controller角色是由一个中心Servlet类和众多Action类合作扮演的,中心Servlet类为控制器提供中心控制点来初步处理所有的用户请求,并选择一个Action类处理具体业务逻辑。 Struts负责管理用户的请求...

Global site tag (gtag.js) - Google Analytics