这个配置文件是我做SSH的时候用的片断,用Spring来管理事务:
<!-- spring代理hibernate事务的两种方法 -->
<!-- 不管采用哪种方法 下面的这个bean都是必须的 -->
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>
<!-- 1、spring事务代理模板 -->
<!-- 需要事务的Service类要继承下面的bean,使用方法如下-->
<!--
<bean id="txProxyTemplate" abstract="true"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager">
<ref bean="transactionManager"/>
</property>
<property name="transactionAttributes">
<props>
<prop key="save*">PROPAGATION_REQUIRED</prop>
<prop key="del*">PROPAGATION_REQUIRED</prop>
<prop key="change*">PROPAGATION_REQUIRED</prop>
<prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
</bean>
<bean id="StudentDaoHibernate"
class="com.lideedu.yame.dao.hibernate.StudentDAOHibernateImpl"
singleton="false">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
<property name="classService">
<ref bean="ClassService" />
</property>
</bean>
<bean id="StudentServiceTarget"
class="com.lideedu.yame.business.IStudentServiceImpl" singleton="false">
<property name="studentDAO">
<ref bean="StudentDaoHibernate" />
</property>
</bean>
<bean id="StudentService" parent="txProxyTemplate">
<property name="target">
<ref bean="StudentServiceTarget"/>
</property>
</bean>
-->
<!-- 2、spring事务自动代理 -->
<!-- 需要事务的方法只要方法名和下面的模式匹配就可以接受Spring的事务代理 -->
<bean id="autoProxy"
class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator">
</bean>
<bean id="transactionAttributeSource"
class="org.springframework.transaction.interceptor.NameMatchTransactionAttributeSource">
<property name="properties">
<props>
<prop key="save*">PROPAGATION_REQUIRED</prop>
<prop key="update*">PROPAGATION_REQUIRED</prop>
<prop key="del*">PROPAGATION_REQUIRED</prop>
<prop key="change*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
<bean id="transactionInterceptor"
class="org.springframework.transaction.interceptor.TransactionInterceptor">
<property name="transactionManager">
<ref bean="transactionManager" />
</property>
<property name="transactionAttributeSource">
<ref bean="transactionAttributeSource" />
</property>
</bean>
<bean id="transactionAdvisor"
class="org.springframework.transaction.interceptor.TransactionAttributeSourceAdvisor">
<constructor-arg>
<ref bean="transactionInterceptor" />
</constructor-arg>
</bean>
分享到:
相关推荐
在IT行业中,SSH(Spring、Struts、Hibernate)是一个经典的Java Web开发框架组合,而这里的“SSH笔记-...通过学习这些资料,开发者可以更好地掌握Spring事务管理的使用,从而在实际项目中确保数据的完整性和一致性。
在Spring中配置事务,通常有编程式和声明式两种方式。编程式事务管理需要开发者显式调用开始、提交、回滚等事务方法,而声明式事务管理则更加简洁,只需在配置文件或注解中声明事务属性,如事务的传播行为、隔离级别...
在事务管理方面,Spring支持编程式和声明式两种方式。编程式事务管理需要在代码中显式地开始、提交、回滚事务,而声明式事务管理则更加灵活,只需在配置文件中声明事务属性,Spring会自动管理事务的生命周期。 在...
测试spring事务管理 搭建了ssh框架的web工程 本工程用到的数据库表很简单 user(id, name) 可自行创建 本例所有的事务放在service层进行管理,方法中间抛出运行时异常以测试是否回滚 Spring配置文件中关于事务...
动态代理和静态代理是代理模式的两种主要实现方式,它们在Java编程中尤为常见。 首先,让我们从静态代理开始。静态代理是手动创建的代理类,它通常与被代理类位于同一个包下,并且实现相同的接口。在这个过程中,...
Spring事务管理主要有两种模式:编程式事务管理和声明式事务管理。编程式事务管理是通过代码直接调用`TransactionTemplate`或`PlatformTransactionManager`的方法来控制事务的开始、提交和回滚。而声明式事务管理则...
在Spring中,事务的配置主要有两种方式: 1. **编程式事务管理**:通过`PlatformTransactionManager`接口的`beginTransaction()`、`commit()`和`rollback()`方法来显式控制事务。这种方式适用于复杂场景,但代码...
在Spring框架中,主要有两种实现方式:基于XML的事务管理和基于注解的事务管理。 1. **基于XML的事务管理**: 在Spring的配置文件中,我们可以定义`<tx:advice>`元素来创建事务通知,其中`<tx:method>`子元素用于...
Spring框架提供了强大的事务管理功能,支持编程式和声明式两种事务处理方式。其中,声明式事务因其简单易用而被广泛采用。本文将详细介绍Spring中事务配置的五种方式,帮助开发者更好地理解和运用这些配置方法。 ##...
在Spring框架中,事务管理有两种主要方式:编程式事务管理和声明式事务管理。编程式事务管理需要在业务逻辑代码中插入事务管理的代码,如`TransactionTemplate`或`PlatformTransactionManager`的使用。而声明式事务...
在Java企业级开发中,SSH是常用的MVC架构,而AOP则是一种编程范式,用于处理系统中的横切关注点,如日志、事务管理等。 **1. Spring AOP简介** Spring AOP是Spring框架的一部分,它提供了声明式事务管理、日志记录...
SSH2 登录与 Spring AOP 拦截是两种在 IT 领域中常见的技术,主要用于提升系统安全性和管理效率。SSH2(Secure Shell version 2)是一种网络协议,用于提供安全的远程登录和数据传输,而 Spring AOP(Aspect ...
Spring支持两种类型的AOP:基于代理的AOP和基于注解的AOP。基于代理的AOP使用JDK动态代理或CGLIB来创建代理对象,而基于注解的AOP则简化了配置,使得可以在类或方法上直接使用注解来定义切面。 3. **动态代理** -...
文件数据存储在Blob类型的FILE_CONTENT表字段上,在Spring中采用OracleLobHandler来处理Lob字段(包括Clob和Blob),由于在程序中不需要引用到oracle数据驱动程序的具体类且屏蔽了不同数据库处理Lob字段方法上的...
1. **配置Spring**:Spring的配置通常分为XML和Java配置两种方式。XML配置文件中,你可以定义bean的实例化、依赖关系以及初始化方法等。Java配置则是通过@Configuration和@Bean注解实现,更符合Java编程习惯。 2. *...
- **代理(Proxy)**:Spring AOP通过代理模式实现对目标对象的拦截,有JDK动态代理和CGLIB代理两种方式。 4. **Spring AOP与AspectJ的比较**: Spring AOP基于代理模型,而AspectJ则是一个完整的AOP编译器,可以...
在Spring中,AOP通过代理模式来实现,有JDK动态代理和CGLIB两种方式。JDK动态代理适用于实现了接口的类,而CGLIB则用于没有实现接口的类。`spring_aop_proxy`目录下的源码展示了Spring如何创建和管理这些代理,以及...
AOP的实现有两种机制: - 动态代理:对于有接口的类,Spring使用JDK的动态代理实现AOP,即`org.springframework.aop.framework.JdkDynamicAopProxy`。 - CGLIB代理:对于没有接口的类,Spring使用CGLIB库创建子类...
Spring配置文件中关于事务配置总是由三个组成部分,分别是DataSource、TransactionManager和代理机制这三部分,无论哪种配置方式,一般变化的只是代理机制这部分。 DataSource、 TransactionManager这两部分只是会...
SSH(Spring、Struts、Hibernate)是一种经典的Web应用开发组合,其中Spring作为核心容器,管理其他组件,Struts处理MVC模式中的视图和控制,而Hibernate则负责数据库交互。在进行SSH整合时,配置文件的正确设置是...