公司项目中配置了Spring 的事务代理, 不用在数据库操作的时候麻烦写很多的事务开始和回滚的代码了。
<!--事务管理器-->
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource">
<ref local="dataSource"/>
</property>
</bean>
<!--这里定义拦截所有的方法-->
<bean id="txInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor">
<property name="transactionManager">
<ref bean="txManager"/>
</property>
<property name="transactionAttributes">
<props>
<prop key="*">PROPAGATION_REQUIRED,-Exception</prop>
<!--<prop key="update">PROPAGATION_REQUIRED</prop>-->
<!--<prop key="delete">PROPAGATION_REQUIRED</prop>-->
</props>
</property>
</bean>
<!--拦截所有名称以Service结束的类-->
<bean id="txBeanNameProxyCreator" class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="interceptorNames">
<list>
<value>txInterceptor</value>
</list>
</property>
<property name="beanNames">
<value>*Service</value>
</property>
</bean>
详解见另外一篇博客:
http://taoistwar.iteye.com/blog/323729
分享到:
相关推荐
在深入探讨Spring事务代理配置之前,我们先简要回顾一下Spring...通过以上步骤,我们就可以在Spring中成功配置事务代理,使得应用程序中的业务方法能够自动进行事务管理,极大地提高了代码的可维护性和事务的一致性。
在Spring配置中定义一个HibernateTransactionManager实例,将SessionFactory注入其中。例如: ```xml <bean id="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager"> ...
1. **定义数据源**:首先,需要在Spring配置文件中定义数据源。数据源是所有数据库交互的基础,这里使用`DriverManagerDataSource`作为示例,它可以通过简单的属性设置来连接数据库。 2. **创建SessionFactory**:...
Spring 会自动创建基于接口的代理,这样就可以在调用接口方法时触发事务管理。 第四种方式:基于类的代理 这种方式适用于不使用接口的情况。在类上直接使用 @Transactional 注解,Spring 会创建基于类的代理,但是...
4. **配置目标类**:在Spring配置文件中配置目标类。 5. **开启AOP注解自动代理**:通过`<aop:aspectj-autoproxy/>`启用AspectJ注解的支持。 6. **编写切面类**:定义一个切面类,并使用`@Aspect`注解标注。 7. **...
在Spring中,事务配置主要涉及到三个核心组件:DataSource、TransactionManager和代理机制。下面将详细介绍Spring的五种事务配置方式。 1. **基于XML的事务配置** - **每个Bean都有一个代理**: 在这种配置方式中...
本篇将深入探讨如何在Spring中半自动地实现AOP代理。 首先,理解AOP的概念是至关重要的。AOP通过将关注点(如日志)与核心业务逻辑分离,提高了代码的可读性和可维护性。在Spring中,AOP代理有两种实现方式:JDK...
在Spring配置文件中,我们需要引入`tx`命名空间,并声明一个`PlatformTransactionManager`实例,例如,对于基于JDBC的事务管理,我们会使用`<bean id="transactionManager" class="org.springframework.jdbc....
在Spring 1.x中,声明式事务有两种主要的配置方式,第一种是通过XML配置逐个为每个业务类创建事务代理。首先,你需要声明一个事务管理器,如`HibernateTransactionManager`,然后定义业务层的bean,并为其创建一个...
Spring 框架的自动代理是其 AOP(面向切面编程)功能的一部分,它允许开发者在不修改原有代码的情况下,通过代理对象插入额外的功能,如日志、事务管理等。`DefaultAdvisorAutoProxyCreator` 是 Spring 自动代理实现...
在Spring框架中,自动代理是一种重要的特性,它允许我们在不修改原有代码的情况下,为bean添加额外的功能,如事务管理、AOP(面向切面编程)等。本篇将深入探讨如何利用Spring实现自动代理,特别是关注`...
`DefaultAdvisorAutoProxyCreator`是Spring AOP中用于自动创建代理的组件,它会寻找所有`Advisor`(包括事务增强`Advisor`),并将它们应用到相关的bean上。这样,我们可以通过定义`Pointcut`来决定哪些方法需要...
Spring事务原理是指Spring框架中的一种机制,用于管理事务,并提供了多种配置方式。事务是指一系列的操作,作为一个整体执行,如果其中某个操作失败,整个事务将回滚。Spring事务原理围绕着两个核心:...
在业务类的方法上添加 `@Transactional` 注解,Spring 将自动创建事务代理。这种方式简化了配置,使得事务管理更直观。示例如下: ```java @Service public class UserService { @Autowired private UserDao ...
在`tx`和`aop`的配合下,Spring会通过AOP代理拦截带有`@Transactional`的方法调用,根据注解中的配置启动一个新的事务,执行方法,如果方法正常结束则提交事务,遇到异常则回滚事务。 在基于Struts1.2和Spring2.0的...
这是最常见的一种方式,通过`TransactionProxyFactoryBean`来创建一个事务代理。如示例代码所示,首先定义了一个`transactionManager`的bean,它是事务管理器,负责实际的事务控制。然后创建`fundServiceDAOProxy`...
1. **定义事务配置**:在Spring配置文件中,我们需要配置事务管理器。通常,对于Spring JDBC或者Hibernate,我们会使用PlatformTransactionManager,如DataSourceTransactionManager。 ```xml ...
在给定的示例中,`TransactionProxyFactoryBean`被用来创建一个事务代理,它将目标DAO对象(如`userDaoTarget`)包装起来,当调用DAO方法时,自动开启、提交或回滚事务。以下是如何配置的示例: ```xml ...
配置文件中,我们需要定义DataSource、SessionFactory、HibernateTransactionManager等Bean,并开启事务代理。 接下来,整合MyEclipse生成的包和配置文件,通常包括以下步骤: 1. 创建Spring的上下文配置文件,例如...
这样,带有@Transactional注解的类或方法将会自动地被Spring事务代理处理。 3. **编程式事务管理** 编程式事务管理允许在代码中显式地开始、提交、回滚事务。使用PlatformTransactionManager接口的实现,如...