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…
微信公众号:
技术交换群: