Class CompositeTransactionAttributeSource
- java.lang.Object
- org.springframework.transaction.interceptor.CompositeTransactionAttributeSource
- All Implemented Interfaces:
Serializable,TransactionAttributeSource
public class CompositeTransactionAttributeSource extends Object implements TransactionAttributeSource, Serializable
CompositeTransactionAttributeSourceimplementation that iterates over a given array ofTransactionAttributeSourceinstances.- 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 TransactionAttributegetTransactionAttribute(Method method, Class<?> targetClass)Return the transaction attribute for the given method, ornullif the method is non-transactional.TransactionAttributeSource[]getTransactionAttributeSources()Return the TransactionAttributeSource instances that this CompositeTransactionAttributeSource combines.booleanisCandidateClass(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:TransactionAttributeSourceDetermine 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. Returningfalseis therefore an optimization for non-affected classes, whereastruesimply means that the class needs to get fully introspected for each method on the given class individually.- Specified by:
isCandidateClassin interfaceTransactionAttributeSource- Parameters:
targetClass- the class to introspect- Returns:
falseif the class is known to have no transaction attributes at class or method level;trueotherwise. The default implementation returnstrue, leading to regular introspection.
getTransactionAttribute
@Nullable public TransactionAttribute getTransactionAttribute(Method method, @Nullable Class<?> targetClass)
Description copied from interface:TransactionAttributeSourceReturn the transaction attribute for the given method, ornullif the method is non-transactional.- Specified by:
getTransactionAttributein 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
nullif none found