Skip to content

Commit

Permalink
Explicit notes on class/method-level semantics in class hierarchies
Browse files Browse the repository at this point in the history
Issue: SPR-17445

(cherry picked from commit ea3250c)
  • Loading branch information
jhoeller committed Nov 5, 2018
1 parent b43e733 commit f002ebd
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 1 deletion.
Expand Up @@ -27,7 +27,12 @@
import org.springframework.transaction.TransactionDefinition;

/**
* Describes transaction attributes on a method or class.
* Describes a transaction attribute on an individual method or on a class.
*
* <p>At the class level, this annotation applies as a default to all methods of
* the declaring class and its subclasses. Note that it does not apply to ancestor
* classes up the class hierarchy; methods need to be locally redeclared in order
* to participate in a subclass-level annotation.
*
* <p>This annotation type is generally directly comparable to Spring's
* {@link org.springframework.transaction.interceptor.RuleBasedTransactionAttribute}
Expand Down
7 changes: 7 additions & 0 deletions src/asciidoc/data-access.adoc
Expand Up @@ -1090,6 +1090,12 @@ following class definition:
}
----

Used at the class level as above, the annotation indicates a default for all methods
of the declaring class (as well as its subclasses). Alternatively, each method can
get annotated individually. Note that a class-level annotation does not apply to
ancestor classes up the class hierarchy; in such a scenario, methods need to be
locally redeclared in order to participate in a subclass-level annotation.

When the above POJO is defined as a bean in a Spring IoC container, the bean instance
can be made transactional by adding merely __one__ line of XML configuration:

Expand All @@ -1115,6 +1121,7 @@ can be made transactional by adding merely __one__ line of XML configuration:
<!-- enable the configuration of transactional behavior based on annotations -->
__<tx:annotation-driven transaction-manager="txManager"/>__<!-- a PlatformTransactionManager is still required -->
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<!-- (this dependency is defined somewhere else) -->
<property name="dataSource" ref="dataSource"/>
Expand Down

0 comments on commit f002ebd

Please sign in to comment.