Class NameMatchTransactionAttributeSource

java.lang.Object
org.springframework.transaction.interceptor.NameMatchTransactionAttributeSource
All Implemented Interfaces:
Serializable, org.springframework.beans.factory.Aware, org.springframework.beans.factory.InitializingBean, org.springframework.context.EmbeddedValueResolverAware, TransactionAttributeSource

public class NameMatchTransactionAttributeSource extends Object implements TransactionAttributeSource, org.springframework.context.EmbeddedValueResolverAware, org.springframework.beans.factory.InitializingBean, Serializable
Simple TransactionAttributeSource implementation that allows attributes to be matched by registered name.
Since:
21.08.2003
Author:
Juergen Hoeller
See Also:
  • Field Details

    • logger

      protected static final org.apache.commons.logging.Log logger
      Logger available to subclasses.

      Static for optimal serialization.

  • Constructor Details

    • NameMatchTransactionAttributeSource

      public NameMatchTransactionAttributeSource()
  • Method Details

    • setNameMap

      public void setNameMap(Map<String,TransactionAttribute> nameMap)
      Set a name/attribute map, consisting of method names (e.g. "myMethod") and TransactionAttribute instances.
      See Also:
    • setProperties

      public void setProperties(Properties transactionAttributes)
      Parse the given properties into a name/attribute map.

      Expects method names as keys and String attributes definitions as values, parsable into TransactionAttribute instances via a TransactionAttributeEditor.

      See Also:
    • addTransactionalMethod

      public void addTransactionalMethod(String methodName, TransactionAttribute attr)
      Add an attribute for a transactional method.

      Method names can be exact matches, or of the pattern "xxx*", "*xxx", or "*xxx*" for matching multiple methods.

      Parameters:
      methodName - the name of the method
      attr - attribute associated with the method
    • setEmbeddedValueResolver

      public void setEmbeddedValueResolver(org.springframework.util.StringValueResolver resolver)
      Specified by:
      setEmbeddedValueResolver in interface org.springframework.context.EmbeddedValueResolverAware
    • afterPropertiesSet

      public void afterPropertiesSet()
      Specified by:
      afterPropertiesSet in interface org.springframework.beans.factory.InitializingBean
    • getTransactionAttribute

      @Nullable public TransactionAttribute getTransactionAttribute(Method method, @Nullable Class<?> targetClass)
      Description copied from interface: TransactionAttributeSource
      Return the transaction attribute for the given method, or null if the method is non-transactional.
      Specified by:
      getTransactionAttribute in interface TransactionAttributeSource
      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
    • isMatch

      protected boolean isMatch(String methodName, String mappedName)
      Determine if the given method name matches the mapped name.

      The default implementation checks for "xxx*", "*xxx", and "*xxx*" matches, as well as direct equality. Can be overridden in subclasses.

      Parameters:
      methodName - the method name of the class
      mappedName - the name in the descriptor
      Returns:
      true if the names match
      See Also:
      • PatternMatchUtils.simpleMatch(String, String)
    • equals

      public boolean equals(@Nullable Object other)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object