|
|
|
[[transaction]]
|
|
|
|
= Transaction Management
|
|
|
|
|
|
|
|
Comprehensive transaction support is among the most compelling reasons to use the Spring
|
|
|
|
Framework. The Spring Framework provides a consistent abstraction for transaction
|
|
|
|
management that delivers the following benefits:
|
|
|
|
|
|
|
|
* A consistent programming model across different transaction APIs, such as Java
|
|
|
|
Transaction API (JTA), JDBC, Hibernate, and the Java Persistence API (JPA).
|
|
|
|
* Support for xref:data-access/transaction/declarative.adoc[declarative transaction management].
|
|
|
|
* A simpler API for xref:data-access/transaction/programmatic.adoc[programmatic] transaction management
|
|
|
|
than complex transaction APIs, such as JTA.
|
|
|
|
* Excellent integration with Spring's data access abstractions.
|
|
|
|
|
|
|
|
The following sections describe the Spring Framework's transaction features and technologies:
|
|
|
|
|
|
|
|
* xref:data-access/transaction/motivation.adoc[Advantages of the Spring Framework's transaction support model]
|
|
|
|
describes why you would use the Spring Framework's transaction abstraction instead of EJB
|
|
|
|
Container-Managed Transactions (CMT) or choosing to drive transactions through a proprietary API.
|
|
|
|
* xref:data-access/transaction/strategies.adoc[Understanding the Spring Framework transaction abstraction]
|
|
|
|
outlines the core classes and describes how to configure and obtain `DataSource` instances
|
|
|
|
from a variety of sources.
|
|
|
|
* xref:data-access/transaction/tx-resource-synchronization.adoc[Synchronizing resources with transactions]
|
|
|
|
describes how the application code ensures that resources are created, reused, and cleaned up properly.
|
|
|
|
* xref:data-access/transaction/declarative.adoc[Declarative transaction management] describes support for
|
|
|
|
declarative transaction management.
|
|
|
|
* xref:data-access/transaction/programmatic.adoc[Programmatic transaction management] covers support for
|
|
|
|
programmatic (that is, explicitly coded) transaction management.
|
|
|
|
* xref:data-access/transaction/event.adoc[Transaction bound event] describes how you could use application
|
|
|
|
events within a transaction.
|
|
|
|
|
|
|
|
The chapter also includes discussions of best practices,
|
|
|
|
xref:data-access/transaction/application-server-integration.adoc[application server integration],
|
|
|
|
and xref:data-access/transaction/solutions-to-common-problems.adoc[solutions to common problems].
|
|
|
|
|
|
|
|
|
|
|
|
|