`
iwebcode
  • 浏览: 2009752 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

Spring 管理hibernate中的事务1(手动开关事务,Aop拦截)

 
阅读更多

1.手动通过Aop环绕拦截,为业务方法前后开关事务。(通过当前线程来开启的)

例子:

LoggAop.java:

package org.hzy.aop;

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

public class LoggAop implements MethodInterceptor{
	
	private SessionFactory sf;
	
	public SessionFactory getSf() {
		return sf;
	}

	public void setSf(SessionFactory sf) {
		this.sf = sf;
	}

	public Object invoke(MethodInvocation arg0) throws Throwable {
		// TODO Auto-generated method stub
		System.out.println("begin");
		this.sf.getCurrentSession().beginTransaction();
		Object o=arg0.proceed();
		this.sf.getCurrentSession().getTransaction().commit();
		System.out.println("end");
		return o;
	}
}

配置:

<prop key="hibernate.current_session_context_class">thread</prop>


  <aop:config>
	<bean id="LogAop" class="org.hzy.aop.LoggAop">
		<property name="sf" ref="MySessionFactory" />
	</bean>
	<aop:config>
		<aop:pointcut expression="execution(* org.hzy.services.impl.DeptService.*(..))" id="tx"/>
		<aop:advisor advice-ref="LogAop" pointcut-ref="tx"/>
		<!-- 此处和上面method方法相同 
		<aop:aspect ref="ad_aop">
			<aop:around method="handler_tx" pointcut="execution(* org.accp.services.UserService.findDept(..))"/>
		</aop:aspect>
		-->
	</aop:config>

上面的配置是我们手动的开启事务,使用Aop切割,LoggAop中需要提供一个SessionFactory,因为使用手动的事务需要将Session绑定到线程当中

<prop key="hibernate.current_session_context_class">thread</prop>












分享到:
评论

相关推荐

    Spring + Hibernate + Struts 事务配置小例子(带提示框等小技巧)

    前几天搞 Spring + Hibernate + Struts 事务配置 ,网上找了好多资料,不过好无语,大多都是 Ctrl + V,浪费俺的宝贵时间 现在我总结配出一套,给大家参考参考,可能有不足,请大家多多交流。 附:内有弹出...

    spring源码分析(1-10)

    Spring源代码解析(七):Spring AOP中对拦截器调用的实现 Spring源代码解析(八):Spring驱动Hibernate的实现 Spring源代码解析(九):Spring Acegi框架鉴权的实现 Spring源代码解析(十):Spring Acegi框架授权...

    spring hibernate 日志管理插件

    数据日志:设计中提供数据日志注入接口,管理数据日志注入,业务系统可过基于hibernate Listener 拦截数据表操作,注入数据日志(此为业务系统实现,设计中提供数据日志注入接口),提供 日志管理:通过统一的...

    Spring源代码解析

    Spring源代码解析(七):Spring AOP中对拦截器调用的实现 Spring源代码解析(八):Spring驱动Hibernate的实现 Spring源代码解析(九):Spring Acegi框架鉴权的实现 Spring源代码解析(十):Spring Acegi框架授权...

    spring源码分析

    1.Spring源代码解析(一):Spring中的事务处理 2. Spring源代码解析(二):ioc容器在Web容器中的启动 3.Spring源代码解析(三):Spring JDBC 4.Spring源代码解析(四):Spring MVC 5.Spring源代码解析(五):Spring ...

    spring+struts+hibernate+dwr+jstl做的实例

    struts hibernate dwr 与Spring完全结合,实现用户列表、信息增、删、改、查、维护时用户重名提示等功能,还包括页面自动转码设置(web.xml),Hibernate管理服务按Bean名称拦截并进行Spring事务管理,完全由Spring...

    Spring源代码解析.rar

    Spring源代码解析7:Spring AOP中对拦截器调用的实现 .doc Spring源代码解析8:Spring驱动Hibernate的实现.doc Spring源代码解析9:Spring Acegi框架鉴权的实现.doc Spring源代码解析10:Spring Acegi框架授权的实现...

    Spring源码学习文档,绝对值得好好研究~~

    Spring源代码解析(七):Spring AOP中对拦截器调用的实现.doc Spring源代码解析(八):Spring驱动Hibernate的实现.doc Spring源代码解析(九):Spring Acegi框架鉴权的实现.doc Spring源代码解析(十):Spring ...

    Spring3+Hibernate4+Struts2 jar包 SSH框架

    spring 3.2.0+hibernate 4.1.6+struts2整合需要的jar包 的目录 antlr-2.7.7.jar aopalliance-1.0.jar asm-3.3.jar asm-commons-3.3.jar aspectjweaver-1.5.3.jar bonecp-0.7.1.RELEASE.jar cglib-2.1.3.jar ...

    spring4.0和hibernate4.0整合框架

    spring4.0和hibernate4.0框架的标准整合,此框架实现了hibernate根据实体自动创建表(前提是你要在mysql中创建名为testspring的库),spring的aop拦截功能,帮助了解aop,和spring事物控制,异常回滚以及junit4的测试...

    Spring 源代码解析

    Spring源代码解析7:Spring AOP中对拦截器调用的实现 Spring源代码解析8:Spring驱动Hibernate的实现;Spring源代码解析9:Spring Acegi框架鉴权的实现 Spring源代码解析10:Spring Acegi框架授权的实现

    Spring开发指南

    事务管理 持久层封装 JDBC Hibernate in Spring ibatis in Spring Aspect Oriented Programming AOP 概念 AOP in Spring Dynamic Proxy 与Spring AOP CGLib 与 Spring AOP AOP 应用 DAO Support ...

    一个简单的struts,spring,hibernate列子

    这个教程只整合了struts,spring,hibernate这三个东西怎么结合起来使用,还加入了aop拦截action的功能,lib包我没有放进去,各位自己去找把,实在是太大了。希望对各位有所帮助。

    spring课堂笔记的相关知识

    只需要通过配置就可以完成对事务的管理,而无需手动编程 方便程序的测试 Spring对Junit4支持,可以通过注解方便的测试Spring程序 方便集成各种优秀框架 Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀...

    springyuanmaaping.zip

    pring源代码解析1:IOC容器;Spring源代码解析2:IoC容器在Web容器中的启动;Spring源代码解析3:... Spring源代码解析7:Spring AOP中对拦截器调用的实现 Spring源代码解析8:Spring驱动Hibernate的实现;Spring源代

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

    6.4.2. Spring AOP中使用@AspectJ还是XML? 6.5. 混合切面类型 6.6. 代理机制 6.7. 编程方式创建@AspectJ代理 6.8. 在Spring应用中使用AspectJ 6.8.1. 在Spring中使用AspectJ来为domain object进行依赖注入 6.8.1.1....

    spring in action英文版

     5.1.2 理解Spring对事务管理的支持  5.1.3 介绍Spring的事务管理器  5.2 在Spring中编写事务  5.3 声明式事务  5.3.1 理解事务属性  5.3.2 声明一个简单的事务策略  5.4 通过方法名声明事务 ...

    Spring in Action(第二版 中文高清版).part1

    6.1.2 理解Spring对事务管理的支持 6.2 选择事务管理器 6.2.1 JDBC事务 6.2.2 Hibernate事务 6.2.3 JPA事务 6.2.4 JDO事务 6.2.5 JTA事务 6.3 在Spring中编写事务 6.4 声明式事务 6.4.1 定义事务参数 ...

    Spring中文帮助文档

    6.4.2. Spring AOP中使用@AspectJ还是XML? 6.5. 混合切面类型 6.6. 代理机制 6.6.1. 理解AOP代理 6.7. 以编程方式创建@AspectJ代理 6.8. 在Spring应用中使用AspectJ 6.8.1. 在Spring中使用AspectJ进行domain ...

Global site tag (gtag.js) - Google Analytics