Interface TransactionAttributeSource
- All Known Implementing Classes:
AbstractFallbackTransactionAttributeSource
,AnnotationTransactionAttributeSource
,CompositeTransactionAttributeSource
,MatchAlwaysTransactionAttributeSource
,MethodMapTransactionAttributeSource
,NameMatchTransactionAttributeSource
public interface TransactionAttributeSource
Strategy interface used by
TransactionInterceptor
for metadata retrieval.
Implementations know how to source transaction attributes, whether from configuration, metadata attributes at source level (such as Java 5 annotations), or anywhere else.
- Since:
- 15.04.2003
- Author:
- Rod Johnson, Juergen Hoeller
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptiongetTransactionAttribute
(Method method, Class<?> targetClass) Return the transaction attribute for the given method, ornull
if the method is non-transactional.default boolean
isCandidateClass
(Class<?> targetClass) Determine whether the given class is a candidate for transaction attributes in the metadata format of thisTransactionAttributeSource
.
-
Method Details
-
isCandidateClass
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 forgetTransactionAttribute(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.- 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.- Since:
- 5.2
-
getTransactionAttribute
@Nullable TransactionAttribute getTransactionAttribute(Method method, @Nullable Class<?> targetClass) Return the transaction attribute for the given method, ornull
if the method is non-transactional.- 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
-