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 annotations), or anywhere else.

Since:
15.04.2003
Author:
Rod Johnson, Juergen Hoeller
See Also:
  • Method Details

    • isCandidateClass

      default boolean isCandidateClass(Class<?> targetClass)
      Determine whether the given class is a candidate for transaction attributes in the metadata format of this TransactionAttributeSource.

      If this method returns false, the methods on the given class will not get traversed for getTransactionAttribute(java.lang.reflect.Method, java.lang.Class<?>) introspection. Returning false is therefore an optimization for non-affected classes, whereas true 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 returns true, leading to regular introspection.
      Since:
      5.2
      See Also:
    • hasTransactionAttribute

      default boolean hasTransactionAttribute(Method method, @Nullable Class<?> targetClass)
      Determine whether there is a transaction attribute for the given method.
      Parameters:
      method - the method to introspect
      targetClass - the target class (can be null, in which case the declaring class of the method must be used)
      Since:
      6.2
      See Also:
    • getTransactionAttribute

      @Nullable TransactionAttribute getTransactionAttribute(Method method, @Nullable Class<?> targetClass)
      Return the transaction attribute for the given method, or null if the method is non-transactional.
      Parameters:
      method - the method to introspect
      targetClass - the target class (can be null, in which case the declaring class of the method must be used)
      Returns:
      the matching transaction attribute, or null if none found