Class CompositeTransactionAttributeSource
java.lang.Object
org.springframework.transaction.interceptor.CompositeTransactionAttributeSource
- All Implemented Interfaces:
Serializable
,TransactionAttributeSource
public class CompositeTransactionAttributeSource
extends Object
implements TransactionAttributeSource, Serializable
Composite
TransactionAttributeSource
implementation that iterates
over a given array of TransactionAttributeSource
instances.- Since:
- 2.0
- Author:
- Juergen Hoeller
- See Also:
-
Constructor Summary
ConstructorDescriptionCompositeTransactionAttributeSource
(TransactionAttributeSource... transactionAttributeSources) Create a new CompositeTransactionAttributeSource for the given sources. -
Method Summary
Modifier and TypeMethodDescriptiongetTransactionAttribute
(Method method, Class<?> targetClass) Return the transaction attribute for the given method, ornull
if the method is non-transactional.final TransactionAttributeSource[]
Return the TransactionAttributeSource instances that this CompositeTransactionAttributeSource combines.boolean
hasTransactionAttribute
(Method method, Class<?> targetClass) Determine whether there is a transaction attribute for the given method.boolean
isCandidateClass
(Class<?> targetClass) Determine whether the given class is a candidate for transaction attributes in the metadata format of thisTransactionAttributeSource
.
-
Constructor Details
-
CompositeTransactionAttributeSource
public CompositeTransactionAttributeSource(TransactionAttributeSource... transactionAttributeSources) Create a new CompositeTransactionAttributeSource for the given sources.- Parameters:
transactionAttributeSources
- the TransactionAttributeSource instances to combine
-
-
Method Details
-
getTransactionAttributeSources
Return the TransactionAttributeSource instances that this CompositeTransactionAttributeSource combines. -
isCandidateClass
Description copied from interface:TransactionAttributeSource
Determine whether the given class is a candidate for transaction attributes in the metadata format of thisTransactionAttributeSource
.If this method returns
false
, the methods on the given class will not get traversed forTransactionAttributeSource.getTransactionAttribute(java.lang.reflect.Method, java.lang.Class<?>)
introspection. Returningfalse
is therefore an optimization for non-affected classes, whereastrue
simply means that the class needs to get fully introspected for each method on the given class individually.- Specified by:
isCandidateClass
in interfaceTransactionAttributeSource
- Parameters:
targetClass
- the class to introspect- Returns:
false
if the class is known to have no transaction attributes at class or method level;true
otherwise. The default implementation returnstrue
, leading to regular introspection.- See Also:
-
hasTransactionAttribute
Description copied from interface:TransactionAttributeSource
Determine whether there is a transaction attribute for the given method.- Specified by:
hasTransactionAttribute
in interfaceTransactionAttributeSource
- Parameters:
method
- the method to introspecttargetClass
- the target class (can benull
, in which case the declaring class of the method must be used)- See Also:
-
getTransactionAttribute
@Nullable public TransactionAttribute getTransactionAttribute(Method method, @Nullable Class<?> targetClass) Description copied from interface:TransactionAttributeSource
Return the transaction attribute for the given method, ornull
if the method is non-transactional.- Specified by:
getTransactionAttribute
in interfaceTransactionAttributeSource
- Parameters:
method
- the method to introspecttargetClass
- the target class (can benull
, in which case the declaring class of the method must be used)- Returns:
- the matching transaction attribute, or
null
if none found
-