Spring外围篇章:
Spring 5 中文解析之外围篇-IoC容器
Spring 5 中文解析外围篇-IoC容器之依赖关系
Spring 5 中文解析外围篇-IoC容器之Bean作用域
Spring 5 中文解析外围篇-IoC容器之自定义Bean性质
Spring 5 中文解析外围篇-IoC容器之BeanDefinition继承与容器拓展点
Spring 5 中文解析外围篇-IoC容器之基于注解的容器配置
Spring 5 中文解析外围篇-IoC容器之类门路扫描和组件治理
Spring 5 中文解析外围篇-IoC容器之JSR330规范注解
Spring 5 中文解析外围篇-IoC容器之基于Java容器配置
Spring 5 中文解析外围篇-IoC容器之Environment形象
Spring 5 中文解析外围篇-IoC容器之ApplicationContext与BeanFactory
Spring 5 中文解析外围篇-IoC容器之Resources
Spring 5 中文解析外围篇-IoC容器之数据校验、数据绑定和类型转换
Spring 5 中文解析外围篇-IoC容器之SpEL表达式
Spring 5 中文解析外围篇-IoC容器之AOP编程(上)”)
Spring 5 中文解析外围篇-IoC容器之AOP编程(下)”)
Spring 5 中文解析外围篇-IoC容器之Spring AOP API
Spring测试篇章:
Spring 5 中文解析测试篇-Spring测试
Spring 5 中文解析外围篇-集成测试之概要和集成测试注解
Spring 5 中文解析外围篇-集成测试之TestContext(上)”)
Spring 5 中文解析外围篇-集成测试之TestContext(中)”)
Spring 5 中文解析测试篇-集成测试之TestContext(下)”)
Spring 5 中文解析测试篇-Spring MVC测试框架
Spring 5 中文解析测试篇-WebTestClient
残缺电子书地址
全面的事务反对是应用Spring Framework的最令人信服的起因之一。Spring框架为事务管理提供了统一的形象,具备以下长处:
- 跨域不同事物API的一致性编程模型,例如:Java事物
API(JTA)
、JDBC
、Hibernate
、Java长久化API(JPA)
。 - 反对申明式事物。
- 比简单的事物API更简略的编程式事物治理。
- 与Spring的数据存储形象优良集成。
上面的局部形容Spring框架的事物个性和技术:
- Spring框架的事务反对模型的长处形容了为什么你将应用Spring 框架的事务形象而不是EJB容器治理的事务(CMT)或抉择通过诸如
Hibernate
之类的专有API驱动本地事务的起因。 - 理解Spring 框架事务形象概述了外围类,并形容了如何从各种起源配置和获取
DataSource
实例。 - 将资源与事务同步形容了利用程序代码如何确保正确创立、重用和清理资源。
- 申明式事务管理形容了对申明式事务管理的反对。
- 编程式事务管理涵盖对编程式(即,显式编码)事务管理的反对。
- 事务绑定事件形容了如何在事务中应用应用程序事件。
本章还探讨了最佳实际,应用程序服务器集成以及常见问题的解决方案。
1.1 Spring框架的事物反对模型的劣势
传统上,Java EE开发人员在事务管理中有两种抉择:全局或本地事务,这两者都有很大的局限性。下两节将回顾全局和本地事务管理,而后探讨Spring框架的事务管理反对如何解决全局和本地事务模型的局限性。
1.1.1 全局事物
全局事务使你能够应用多个事务资源,通常是关系数据库和音讯队列。应用服务器通过JTA治理全局事务,而JTA
是一个繁琐的API(局部是因为其异样模型)。此外,通常须要从JNDI
派生JTA
UserTransaction
,这意味着你还须要应用JNDI
能力应用JTA
。全局事务的应用限度了利用程序代码的任何潜在重用,因为JTA
通常仅在应用程序服务器环境中可用。
以前,应用全局事务的首选办法是通过EJB
CMT
(容器治理的事务)。CMT
是申明式事务管理的一种模式(与编程式事务管理不同)。只管应用EJB
自身必须应用JNDI
,然而EJB
CMT
打消了与事务相干的JNDI
查找的须要。它打消了大多数(但不是全副)编写Java代码来管制事务的需要。重大毛病是CMT
与JTA
和应用程序服务器环境相关联。而且,仅当抉择在EJB
中(或至多在事务性EJB幕后)实现业务逻辑时,此性能才可用。EJB
的毛病是如此之大,以至于这不是一个有吸引力的提议,特地是在面对申明性事务管理的引人注目的代替计划时。
1.1.2 本地事物
本地事务是特定于资源的,例如与JDBC
连贯关联的事务。本地事务可能更易于应用,但有一个显著的毛病:它们不能跨多个事务资源工作。例如,应用JDBC
连贯治理事务的代码不能在全局JTA
事务中运行。因为应用程序服务器不参加事务管理,所以它无奈帮忙确保多个资源之间的正确性。(值得注意的是,大多数应用程序应用单个事务资源。)另一个毛病是本地事务侵入了编程模型。
1.1.3 Spring框架的一致性编程模型
Spring解决了全局事物和本地事物的缺点。它使应用程序开发人员能够在任何环境中应用统一的编程模型。你只需编写一次代码,即可从不同环境中的不同事务管理策略中受害。Spring框架提供了申明式和编程式事务管理。大多数用户喜爱申明式事务管理,在大多数状况下咱们倡议这样做。
通过编程式事务管理,开发人员能够应用Spring框架事务形象,该形象能够在任何根底事务基础架构上运行。应用首选的申明式模型,开发人员通常编写很少或没有编写与事务管理相干的代码,因而,它们不依赖于Spring框架事务API或任何其余事务API。
你是否须要一个应用程序服务器来进行事务管理
Spring框架的事务管理反对更改了无关企业Java应用程序何时须要应用服务器的传统规定。
特地是,你不须要纯正用于通过
EJB
进行申明式事务的应用程序服务器。实际上,即便你的应用服务器具备弱小的JTA
性能,你也可能会决定,与EJB
CMT
相比,Spring框架的申明式事务提供更多的性能和更高效的编程模型。通常,仅当你的应用程序须要解决跨多个资源的事务时才须要应用程序服务器的
JTA
性能,而这并不是许多应用程序所必须的。许多高端应用程序应用单个高度可扩大的数据库(例如Oracle
RAC
)来代替。独立事务管理器(例如Atomikos
Transactions
和JOTM
)是其余抉择。当然,你可能须要其余应用程序服务器性能,例如Java音讯服务(JMS
)和Java EE连接器体系结构(JCA
)。Spring框架使你能够抉择何时将应用程序扩大到齐全加载的应用程序服务器。不再应用
EJB
CMT
或JTA
的惟一抉择是应用本地事务(例如JDBC
连贯上的事务)编写代码,并且如果你须要将该代码在全局的、容器治理的事务中运行,则面临大量的工作。应用Spring框架,仅须要更改配置文件中的某些Bean定义(而不是代码)。
作者
集体从事金融行业,就任过易极付、思建科技、某网约车平台等重庆一流技术团队,目前就任于某银行负责对立领取零碎建设。本身对金融行业有强烈的喜好。同时也实际大数据、数据存储、自动化集成和部署、散布式微服务、响应式编程、人工智能等畛域。同时也热衷于技术分享创建公众号和博客站点对常识体系进行分享。关注公众号:青年IT男 获取最新技术文章推送!
博客地址: http://youngitman.tech
CSDN: https://blog.csdn.net/liyong1…
微信公众号:
技术交换群: