先声明,边学边写,肯定有不对的地方,而且很是笼统,大家帮忙指正,当教程看就不必了
Spring事务:spring 将事务管理进行抽象,具有一致的事务管理,有点如下:
一 spring 事务管理带给我们什么好处
1 为不同的事务API提供一致的编程模型:我的理解是,无论是jdbc,hibernate,jta,均可以按照一定的模型—步骤流程去进行事务处理。
2 提供了比传统事务API更简单,更易用的编程式事务管理API:我的理解,看过之后还真没感觉到编程式事务的使用简单。
3 支持声明式事务管理:我的理解是,根据定义某些AOP,可以对执行数据库操作的函数实现事务关注点的横切。需要进行配置完成。比较不错。
二 事务管理的实现方式。
1 编程方式实现事务管理
A 使用PlatformTransactionManager
这种方式过程如下,根据配置文件得到一个PlatformTransactionManager对象的实现类引用。然后得到一个代表事务的TransactionStatus对象,后面的和使用jdbc事务就差不多了。
B 得到一个PlatformTransactionManager对象后,生成TransactionTemplate的对象实例,再运行它的execute方法即可,不需要显式开启事务,但需要显式会滚。
2 声明式事务管理
A 使用TransactionProxyFactory为目标bean生成事务代理:
过程:定义一个类型为TransactionProxyFactory的bean,依赖注入TransactionManager,用来调用事务;依赖注入要管理的目标对象,以及要加入事务的方法以及事务的级别等参数。
这样在编译文件的时候,aop就会将其织入相应bean的方法代码中,以完成事务管理。
这样的缺点是需要为每一个目标bean指定一个TransactionProxyFactory,很麻烦的。
可以通过定义父模版的方式定义三事物属性相同的模版
B 使用 beanName自动创建代理
使多个bean使用相同的事务代理
使用流程:定义一个事务拦截器,类别为:TransactionInterceptor, 依赖注入TransactionManager,用来调用事务;指定transactionAttribute,以标志那些方法需要进行事务注入,以及事务的级别。
定义一个BeanNameAutoProxyCreator ,指定使用的TransactionInterceptor;指定那些bean需要进行事务注入(方法已经在TransactionInterceptor中指定)
这样就会根据其定义出切点,然后进行横切,完成织入。
C 基于Java5的注释式事务代理配置:
这是通过将事务配置直接写到bean的文件里来实现的(java5的注视功能)
分享到:
相关推荐
面向切面编程(AOP)是Spring另一个重要的特性,它允许将关注点(如日志、事务管理)从主业务逻辑中分离出来,形成独立的“切面”,从而实现代码的模块化和复用。Spring AOP通过代理模式实现,可以对方法调用进行...
Spring的AOP模块支持创建定义横切关注点的“切面”,如日志、事务管理等,这些关注点可以被模块化并独立于业务逻辑。AOP通过动态代理或字节码增强实现切面的插入。 四、Bean的生命周期管理 Spring管理的Bean有三种...
AOP则为实现日志、事务管理等横切关注点提供了便利。 SpringMVC是Spring框架的一部分,专门用于处理Web请求。它遵循Model-View-Controller(MVC)设计模式,分离了业务逻辑、数据和用户界面。在SpringMVC中,...
这个"初学者spring必看教程"可能涵盖了这些知识点,并通过实例、代码示例和讲解帮助读者逐步理解并掌握Spring框架。对于希望深入学习Spring的初学者来说,这是一个非常有价值的资源。建议按照教程的章节顺序逐步学习...
在初学SpringCloud的过程中,与Oracle数据库的连接是构建分布式系统的一个重要环节。SpringCloud作为一个微服务框架,提供了丰富的服务治理功能,而数据库作为数据存储的核心,与SpringBoot的集成使得我们可以轻松...
而面向切面编程则让我们可以更好地管理横切关注点,如日志、事务等。 SpringMVC是Spring框架的一部分,用于构建Web应用程序的模型-视图-控制器(Model-View-Controller, MVC)架构。它处理HTTP请求,将请求分发到...
而面向切面编程则允许开发者将关注点分离,如日志、事务管理等,从而提高代码的整洁性和模块化。 本教程的PDF版带有书签,便于读者快速定位到感兴趣的章节。高清的版面设计确保了阅读体验,同时支持文字复制,方便...
而面向切面编程则允许我们在不修改代码的情况下,对程序的行为进行横切关注点的处理,如日志记录、事务管理等。 在新建Spring项目时,通常我们会使用Spring Initializr来快速初始化项目结构。这是一个在线工具,也...
本篇将详细讲解Spring中的事务管理配置,帮助初学者理解并掌握这一重要概念。 1. 声明式事务管理 声明式事务管理是Spring中最常用的事务管理方式,它通过AOP(面向切面编程)来实现。在配置文件中,我们可以通过`...
AOP则允许将横切关注点(如日志、事务管理)从核心业务逻辑中解耦。 2. **Junit依赖** Junit是Java开发中常用的单元测试框架。在Spring项目中,Junit用于编写和执行测试用例,确保代码的正确性。通过测试类,...
1. **Spring MVC**:Spring MVC是Spring框架的一部分,用于构建Web应用程序。在这个项目中,我们可能会看到Controller类,它们处理HTTP请求,并将数据传递给视图层(可能是JSP或Thymeleaf模板)。 2. **Model-View-...
这个"spring demo 初学者"的学习资料可能是一个针对新手的教程,旨在帮助初学者快速理解和掌握Spring的基本概念和用法。 首先,Spring的核心特性之一是依赖注入(Dependency Injection,DI),它使得应用程序的组件...
2. **Spring事务管理**:Spring提供了两种事务管理方式:编程式事务管理和声明式事务管理。 3. **使用Spring管理事务**:开发者可以通过配置或注解来指定事务边界。 #### 框架整合 1. **SSH(Struts + Spring + ...
在Spring框架中,事务管理是核心功能之一,它确保了数据的一致性和完整性。这篇"Spring学习笔记(18)-...这篇笔记详细阐述了Spring配置文件实现事务管理的方法,是初学者和进阶者理解Spring事务管理机制的重要参考资料。
Spring框架是Java开发中不可或缺的一部分,它为应用程序提供了一个全面的基础设施,包括依赖注入、面向切面编程、数据访问、事务管理以及许多其他服务。在初学者阶段,了解并掌握Spring的基本jar包是非常重要的,这...
【MyBatis-Spring配置教程】是一份专为初学者设计的教程,旨在帮助学习者快速掌握如何在Spring框架中整合并使用MyBatis。MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射,而Spring则是一个...
面向切面编程则是Spring实现模块化和解耦的另一种方式,它允许将关注点(如日志、事务管理)从业务逻辑中分离出来,形成独立的切面,提高代码的复用性。 在Spring框架中,Bean是核心组件,它代表了应用中的对象。...
### Spring事务管理详解 #### 一、Spring事务王国的架构概览 在深入探讨Spring事务管理之前,我们首先需要理解其核心理念...无论是对于初学者还是资深开发者,Spring事务管理都是一项值得深入学习和掌握的关键技术。
此外,Spring的AOP特性允许我们定义横切关注点,如日志记录、事务管理等,可以独立于业务逻辑进行编写。这提高了代码的复用性和模块化。 至于web开发方面,Spring MVC是Spring框架的一部分,它提供了一种模型-视图-...