博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
配置spring事务管理的几种方式(声明式事务)
阅读量:4596 次
发布时间:2019-06-09

本文共 2963 字,大约阅读时间需要 9 分钟。

Spring配置文件中关于事务配置总是由三个组成部分,分别是DataSource、TransactionManager和代理机制这三部分,无论哪种配置方式,一般变化的只是代理机制这部分。

    DataSource、TransactionManager这两部分只是会根据数据访问方式有所变化,比如使用Hibernate进行数据访问时,DataSource实际为SessionFactory,TransactionManager的实现为HibernateTransactionManager。

具体如下图:

 根据代理机制的不同,总结了五种Spring事务的配置方式,配置文件如下:

 第一种方式:每个Bean都有一个代理
PROPAGATION_REQUIRED
第二种方式:所有Bean共享一个代理基类
PROPAGATION_REQUIRED
第三种方式:使用拦截器
PROPAGATION_REQUIRED
*Dao
transactionInterceptor
第四种方式:使用tx标签配置的拦截器
第五种方式:全注解

此时在DAO上需加上@Transactional注解,如下:

package com.bluesky.spring.dao;import java.util.List;import org.hibernate.SessionFactory;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.orm.hibernate3.support.HibernateDaoSupport;import org.springframework.stereotype.Component;import com.bluesky.spring.domain.User;@Transactional@Component("userDao")public class UserDaoImpl extends HibernateDaoSupport implements UserDao {    public List
listUsers() { return this.getSession().createQuery("from User").list(); } }

 

转载于:https://www.cnblogs.com/longshiyVip/p/5061547.html

你可能感兴趣的文章
JavaScript将具有父子关系的原始数据格式化成树形结构数据(id,pid)
查看>>
CSS3.0——背景属性
查看>>
超棒的CSS3动画页面过渡效果
查看>>
【转】性能测试、负载测试、压力测试的区别
查看>>
hdu5863_dp+矩阵快速幂
查看>>
运算符
查看>>
【转载】C语言中的undefined behavior/unspecified behavior - 序
查看>>
MySQL服务使用
查看>>
C语言练手自己编写学生成绩管理系统
查看>>
20175204 张湲祯 2018-2019-2《Java程序设计》第二周学习总结
查看>>
NCPC 2015 - Problem A - Adjoin the Networks
查看>>
How to lisp Lisp output a paragraph"500 Tph Dry Process Cement Plant Machinery Manufacturers"
查看>>
更改chrome浏览器css背景为护眼色,更改字体为微软雅黑。
查看>>
Unix系统编程()文件描述符和打开文件之间的关系
查看>>
ASP.NET AJAX Calling Web Service
查看>>
Connecting Windows Mobile device emulators to the Internet without ActiveSync
查看>>
英文词频统计说明
查看>>
C++的new、delete需要注意的一点:使用危险函数导致的越界
查看>>
js执行过程
查看>>
Laravel5.1学习笔记15 数据库1 数据库使用入门
查看>>