Class CompositeTransactionAttributeSource
- java.lang.Object
- org.springframework.transaction.interceptor.CompositeTransactionAttributeSource
- All Implemented Interfaces:
Serializable
,TransactionAttributeSource
public class CompositeTransactionAttributeSource extends Object implements TransactionAttributeSource, Serializable
CompositeTransactionAttributeSource
implementation that iterates over a given array ofTransactionAttributeSource
instances.- Since:
- 2.0
- Author:
- Juergen Hoeller
- See Also:
- Serialized Form
Constructor Summary
Constructors Constructor Description CompositeTransactionAttributeSource(TransactionAttributeSource... transactionAttributeSources)
Create a new CompositeTransactionAttributeSource for the given sources.
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description TransactionAttribute
getTransactionAttribute(Method method, Class<?> targetClass)
Return the transaction attribute for the given method, ornull
if the method is non-transactional.TransactionAttributeSource[]
getTransactionAttributeSources()
Return the TransactionAttributeSource instances that this CompositeTransactionAttributeSource combines.boolean
isCandidateClass(Class<?> targetClass)
Determine whether the given class is a candidate for transaction attributes in the metadata format of thisTransactionAttributeSource
.
Constructor Detail
CompositeTransactionAttributeSource
public CompositeTransactionAttributeSource(TransactionAttributeSource... transactionAttributeSources)
Create a new CompositeTransactionAttributeSource for the given sources.- Parameters:
transactionAttributeSources
- the TransactionAttributeSource instances to combine
Method Detail
getTransactionAttributeSources
public final TransactionAttributeSource[] getTransactionAttributeSources()
Return the TransactionAttributeSource instances that this CompositeTransactionAttributeSource combines.
isCandidateClass
public boolean isCandidateClass(Class<?> targetClass)
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.
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 (may benull
, in which case the declaring class of the method must be used)- Returns:
- the matching transaction attribute, or
null
if none found