`
hanqunfeng
  • 浏览: 1541203 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

spring注解式事务管理实例

阅读更多

最近在开发一项目时使用了spring注解式事务管理,现介绍如下:

一.spring配置文件

这里使用spring命名空间,如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"
default-autowire="byName" default-lazy-init="true">

<context:property-placeholder location="classpath:jdbc.properties" />


<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<property name="initialSize" value="${jdbc.initialSize}" />
<property name="maxActive" value="${jdbc.maxActive}" />
<property name="maxIdle" value="${jdbc.maxIdle}" />
<property name="minIdle" value="${jdbc.minIdle}" />
<property name="maxWait" value="${jdbc.maxWait}" />
</bean>

<!-- 设定transactionManager -->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>

<!--启动spring注解功能-->

<tx:annotation-driven transaction-manager="transactionManager" />


</beans>

说明:

1.如果事务管理器的id是transactionManager,这里可以不对transaction-manager进行配置,即<tx:annotation-driven />就可以。

2.这个配置是告诉spring在类(接口)层面或者方法层面上检查应用程序上下文中的所有标准了@Transactional的bean,spring将自动把事务通知的内容通知给它。

3.这个通知的事务参数将由@Transactional注释的参数来定义。

4.如果注释的是接口,则该接口的所有实现类都将被事务化。

二.使用@Transactional标注bean

package com.netqin.bbs.initUserData;

import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

import com.netqin.bbs.initUserData.service.InitUserDataService;
import com.netqin.bbs.utils.Constant;
import com.netqin.bbs.utils.ReadFileUtil;

@Transactional(propagation=Propagation.SUPPORTS,readOnly=true)//设置默认的事务管理策略,即没有标注@Transactional的方法的事务处理方式,意思为不要求方法必须在一个事务中运行
public class InitUserData {


/**
* 描述 :使用方法上声明的事务管理策略,这里的意思为需要在一个事务中运行. <br>
*<p>

*/
@Transactional(propagation=Propagation.REQUIRED,readOnly=false)
public void method1(){

……………………

……………………

}

/**
* 描述 : 使用默认策略. <br>
*<p>

*/

public void method2(){

……………………

……………………

}

}

记得要将这个bean加入到spring上下文中。

一般来说,上述两种事务策略就可以满足要求了,不过需要注意,注解功能的使用需要在项目中加入cglib-nodep-x.x_x.jar

分享到:
评论

相关推荐

    spring-tx事务管理实例

    本实例将深入探讨Spring事务管理的实现与应用。 首先,Spring事务管理分为编程式事务管理和声明式事务管理两种方式。编程式事务管理是通过调用TransactionTemplate或直接使用PlatformTransactionManager接口来控制...

    spring_事务管理(实例代码)

    声明式事务管理是Spring的一个强大特性,它允许开发者在配置文件或注解中声明事务边界,将事务管理与业务逻辑分离。Spring提供了基于XML配置和基于注解的两种声明式事务管理方式。 1. 基于XML的声明式事务管理:在...

    全面分析_Spring_的编程式事务管理及声明式事务管理

    本教程将深入探讨 Spring 的编程式事务管理和声明式事务管理,帮助你理解这两种方式的差异与应用场景。 首先,编程式事务管理依赖于编程的方式显式地控制事务的开始、提交、回滚等操作。它通过实现 `...

    Spring声明式事务处理

    Spring框架的声明式事务处理是Java企业级应用中不可或缺的一部分,它为开发者提供了一种方便、高效的方式来管理事务。在Spring中,事务管理分为编程式和声明式两种方式,而声明式事务处理则是通过配置来控制事务的...

    Spring 框架的事务管理及应用

    声明式事务管理是通过配置的方式设置事务的边界,通常通过Spring的`@Transactional`注解或者XML配置来实现。这种方式比编程式事务管理更为简洁和方便。 **示例:传统的JDBC事务管理** 在使用JDBC进行数据操作时,...

    Spring+Hibernate注解事务实例

    本实例将深入探讨如何结合Spring的注解声明式事务管理与Hibernate的数据访问技术,构建一个完整的事务处理系统。 Spring框架以其灵活的依赖注入(DI)和面向切面编程(AOP)闻名,它允许开发者将事务管理从业务逻辑...

    spring声明式事务配置

    声明式事务管理通过XML配置或注解的形式定义事务边界,使得业务逻辑与事务控制分离。 ### 描述分析:XML配置示例 提供的XML配置示例展示了如何在Spring中配置声明式事务。具体来说,该示例包括以下几个关键组件: ...

    spring事务案例分析.zip

    7. **案例分析**:"SPRING事务管理案例分析.docx"很可能包含了具体的项目实例,详细讲解了如何在Spring项目中配置和使用事务管理,以及如何解决实践中遇到的问题。而"studyspring"可能是源代码目录,包含了实现这些...

    spring boot注解事务+多线程

    当一个方法被这个注解标记时,Spring会自动管理事务的开始、提交或回滚。如果方法中发生任何未捕获的异常,事务将被回滚,确保数据的一致性。例如: ```java @Service public class UserService { @Transactional ...

    Spring使用XML配置声明式事务

    在Spring框架中,声明式事务管理是实现事务处理的一种高效且灵活的方式,它允许开发者通过XML配置或注解来定义事务边界,而无需在业务逻辑代码中显式地调用开始、提交或回滚事务的方法。这篇博文"Spring使用XML配置...

    spring 简单实例 事务回滚

    Spring 提供了声明式事务管理,这是通过在配置文件或使用注解来声明事务边界的方式。例如,我们可以使用`@Transactional`注解来标记一个方法为事务方法。当这个方法执行时,Spring会自动开启一个事务,执行方法内的...

    Xml文件配置实现声明式事务管理

    在Spring框架中,声明式事务管理是一种非常重要的特性,它允许开发者通过XML配置或注解来定义事务的边界,而无需在业务代码中显式地管理事务。这种方式极大地提高了代码的可读性和可维护性。本篇文章将深入探讨如何...

    Spring 整合mybatis(注解&xml版声明式事务).pdf

    在声明式事务管理中,我们可以在业务逻辑方法上添加注解或配置XML来控制事务,而不需要在代码中显式地使用事务API来管理事务。这种方式可以让开发者专注于业务逻辑的实现,而由框架来保证事务的ACID属性。 在整合的...

    spring_tx编程式事务代码

    Spring提供了多种事务管理方式,其中编程式事务管理和声明式事务管理是两种主要的模式。编程式事务管理允许开发者通过代码来精确控制事务的边界,而`TransactionTemplate`就是Spring为编程式事务管理提供的一种便捷...

    spring+ibatis声明式事务Demo_

    本示例“spring+ibatis声明式事务Demo”将探讨如何在Spring与iBatis集成环境中使用声明式事务管理。声明式事务管理允许开发者通过配置来控制事务,无需在代码中显式处理事务开始、提交和回滚。 **Spring框架** 是一...

    Spring ax/aop声明式事务配置实例

    声明式事务管理是Spring提供的一种事务管理方式,开发者无需在业务代码中显式调用事务开始、提交、回滚等操作,只需在配置文件或注解中声明事务属性即可。这种方式降低了代码的耦合度,提高了可维护性。 三、配置...

    spring事务操作试验

    在Spring框架中,事务管理是核心功能之一,它允许开发者以声明式或编程式的方式处理应用中的事务。本文将深入探讨在"spring事务操作试验"中涉及的关键知识点,并结合提供的资源进行详细阐述。 首先,Spring事务管理...

Global site tag (gtag.js) - Google Analytics