`
as619864232
  • 浏览: 320656 次
社区版块
存档分类
最新评论

Spring 中自带的事务管理

阅读更多

Spring 集成 hibernate 的事务管理,不用我们手动开启和提交事务了:

需要在xml文件头部的 xsi:schemaLocation 添加:

http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd

 

hibernate 配置文件中可设的配置:

hibernate.current_session_context_class=org.springframework.orm.hibernate3.SpringSessionContext

此为默认值,可不设

 

aop 的设置:

 

<bean id="transaction_manager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
	<property name="sessionFactory" ref="sessionFactory">	</property>
</bean>
	
<tx:advice id="muser_txAdvice" transaction-manager="transaction_manager">
	<tx:attributes>
		<tx:method name="*" propagation="REQUIRED"/>
	</tx:attributes>
</tx:advice>
	
<bean id="muser_inter" class="org.aops.MuserAdvice">
	<property name="sessionFactory" ref="sessionFactory"></property>
</bean>

<aop:config>
	<aop:pointcut expression="execution(* org.services.impl.MuserServiceImpl.login(String, String))" id="login_pointCut" />
	<aop:advisor advice-ref="muser_inter" pointcut-ref="login_pointCut" />
	<aop:advisor advice-ref="muser_txAdvice" pointcut-ref="login_pointCut" />
</aop:config>

 

java 中的代码:

 

package org.aops;

import org.aopalliance.intercept.MethodInterceptor;
import org.aopalliance.intercept.MethodInvocation;
import org.hibernate.SessionFactory;

public class MuserAdvice implements MethodInterceptor {

	private SessionFactory sessionFactory;

	@Override
	public Object invoke(MethodInvocation arg0) throws Throwable {
		System.out.println("in");
		Object obj = arg0.proceed();
		System.out.println("out");
		return obj;
	}

	public SessionFactory getSessionFactory() {
		return sessionFactory;
	}

	public void setSessionFactory(SessionFactory sessionFactory) {
		this.sessionFactory = sessionFactory;
	}

}

 

控制台的输出:

 

in

Hibernate: 

    select

        muser0_.MUID as MUID1_,

        muser0_.MUNAME as MUNAME1_,

        muser0_.MUPWD as MUPWD1_ 

    from

        TEST.MUSER muser0_ 

    where

        muser0_.MUNAME=? 

        and muser0_.MUPWD=?

out

分享到:
评论

相关推荐

    spring框架手动提交事务,jdbctample

    注意:只是jdbc自带的jdbctample,不能 用于整合mybatis框架的事务,我整合了,事务不起作用!!!! 按老师的说法是基于xml方式,但不准确,因为也用到了注解 &lt;aop:aspectj-autoproxy proxy-target-class="true"&gt;...

    分布式系统事务一致性解决方案大对比,谁最好使?

    我们通常只需借助开发平台中特有数据访问技术和框架(例如spring、JDBC、ADO.NET),结合关系型数据库自带的事务管理机制来实现事务性的需求。关系型数据库通常具有ACID特性:原子性(Atomicity)、一致性...

    springrain

    springrain是spring的极简封装,spring一站式开发的范例. springrain本身就是一个完整的eclipse项目,...spring良好的扩展性,集成度,IOC,AOP事务,已经是项目的基础条件. 项目只依赖spring,没有hibernate,struts,ibati

    cc-project:一个Angular + Spring Boot前一级分离基础权限框架

    注解事务管理,支持分布式事务管理7.前后端分离,实现跨域请求,权限拦截,权限细化到按钮、请求与菜单8.实现请求\响应双向数据加密9.可在系统中自由的配置菜单、按钮、访问的权限,保证了操作的安全性,同时也避免...

    springmvc注解实例

    基于spring3.2.9的版本,采用纯注解的方式以及spring自带的jdbcTemplate操作数据库和事务管理。

    Java求职面试宝典各大公司常考知识点

    4.6. spring的事务如何配置 20 4.7. transaction有那几种实现 21 4 综合部分 21 4.1. Hibernate和spring中常出现的几个异常 21 4.2. Hibernate与jdbc的联系 22 4.3. Hibernate与spring的联系 22 4.4. 项目中为什么...

    低清版 大型门户网站是这样炼成的.pdf

    6.3.1 spring 2.5的声明式事务管理 394 6.3.2 基于xml方式的事务管理配置 396 6.3.3 基于annotation方式的事务管理配置 400 6.4 “桃园三结义”——ssh 2组合开发框架始成 404 6.4.1 spring 2.5集成orm中间件...

    spring-boot-rest-framework

    服务结果以json格式返回,如果服务层发生异常,返回结果中自带errorCode及errorDesc,不论服务端方法执行成功与否,均会返回执行结果及服务端耗时 ####浏览地址 程序入口类为spring.boot.rest.demo.main....

    若依框架整合RocketMQ,自带原码,只需要修改yaml文件中的数据库连接配置,就可以直接启动

    RuoYi是一个基于Java技术开发的后台管理系统,基于技术组合(SpringBoot+Vue),内置模块有:部门管理、角色用户、菜单即按钮授权、数据权限、系统参数、日志管理、代码生成、表单构建等。支持多数据源、支持分布式...

    web开发常用jar

    Java事务API,为J2EE平台提供了分布式事务服务 lucene-core.jar 、lucene-highlighter.jar 、compass-index-patch.jar、 compass-2.1.0.jar 是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎 json-...

    java面试题

    73.6. 项目中用到的Spring中的切面编程最多的地方:声明式事务管理。 77 73.7. spring的事务如何配置 77 73.8. transaction有那几种实现(事务处理)(Spring) 79 73.9. Spring IoC 79 73.10. Spring AOP面向方面编程 ...

    java开发常用jar包

    测试可以利用spring的注入功能,引入spring的事物管理,而且对于测试的数据还可以支持回滚,保存数据 velocity-1.6.2.jar velocity-1.6.2-dep.jar velocity-tools-1.4.jar velocity-tools-view-1.4.jar velocity...

    JessMA Java Web 应用开发框架 (v3.2.2-20130815).pdf

    1) 功能全面:内置稳定高效的MVC基础架构和DAO框架,支持Action拦截、Form Bean / Dao Bean / Spring Bean装配和声明式事务,提供国际化、文件上传下载、缓存和页面静态化等常用Web组件,能满足绝大部分Web应用的...

    基于J2EE框架的个人博客系统项目毕业设计论文(源码和论文)

    由于J2EE的开源的框架中提供了MVC模式实现框架Struts、对象关系模型中的Hibernate 的框架及拥有事务管理和依赖注入的Spring。利用现存框架可以更快开发系统。所以选择Java技术作为blog 的开发工具。 为了增加系统的...

    JAVA上百实例源码以及开源项目

    在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天...

    JAVA上百实例源码以及开源项目源代码

    在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天...

    java开源包1

    JFile 是 JActor 的文件持久化组件,以及一个高吞吐量的可靠事务日志组件。 Google地图JSP标签库 利用Google:maps JSP标签库就能够在你的Web站点上实现GoogleMaps的所有功能而且不需要javascript或AJAX编程。它还...

    java开源包11

    JFile 是 JActor 的文件持久化组件,以及一个高吞吐量的可靠事务日志组件。 Google地图JSP标签库 利用Google:maps JSP标签库就能够在你的Web站点上实现GoogleMaps的所有功能而且不需要javascript或AJAX编程。它还...

    java开源包2

    JFile 是 JActor 的文件持久化组件,以及一个高吞吐量的可靠事务日志组件。 Google地图JSP标签库 利用Google:maps JSP标签库就能够在你的Web站点上实现GoogleMaps的所有功能而且不需要javascript或AJAX编程。它还...

Global site tag (gtag.js) - Google Analytics