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 Type
    Method
    Description
    getTransactionAttribute(Method method, Class<?> targetClass)
    Return the transaction attribute for the given method, or null 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 this TransactionAttributeSource.
  • 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
    • 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 (may be null, in which case the declaring class of the method must be used)
      Returns:
      the matching transaction attribute, or null if none found