Class MethodMapTransactionAttributeSource
java.lang.Object
org.springframework.transaction.interceptor.MethodMapTransactionAttributeSource
- All Implemented Interfaces:
 Aware,BeanClassLoaderAware,InitializingBean,EmbeddedValueResolverAware,TransactionAttributeSource
public class MethodMapTransactionAttributeSource
extends Object
implements TransactionAttributeSource, EmbeddedValueResolverAware, BeanClassLoaderAware, InitializingBean
Simple 
TransactionAttributeSource implementation that
 allows attributes to be stored per method in a Map.- Since:
 - 24.04.2003
 - Author:
 - Rod Johnson, Juergen Hoeller
 - See Also:
 
- 
Field Summary
Fields - 
Constructor Summary
Constructors - 
Method Summary
Modifier and TypeMethodDescriptionvoidaddTransactionalMethod(Class<?> clazz, String mappedName, TransactionAttribute attr) Add an attribute for a transactional method.voidaddTransactionalMethod(Method method, TransactionAttribute attr) Add an attribute for a transactional method.voidaddTransactionalMethod(String name, TransactionAttribute attr) Add an attribute for a transactional method.voidEagerly initializes the specified"methodMap", if any.booleangetTransactionAttribute(Method method, Class<?> targetClass) Return the transaction attribute for the given method, ornullif the method is non-transactional.inthashCode()protected voidinitMethodMap(Map<String, TransactionAttribute> methodMap) Initialize the specified"methodMap", if any.protected booleanReturn if the given method name matches the mapped name.voidsetBeanClassLoader(ClassLoader beanClassLoader) Callback that supplies the beanclass loaderto a bean instance.voidsetEmbeddedValueResolver(StringValueResolver resolver) Set the StringValueResolver to use for resolving embedded definition values.voidsetMethodMap(Map<String, TransactionAttribute> methodMap) Set a name/attribute map, consisting of "<fully-qualified class name>.<method-name>" method names (for example, "com.mycompany.mycode.MyClass.myMethod") andTransactionAttributeinstances (or Strings to be converted toTransactionAttributeinstances).toString()Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface org.springframework.transaction.interceptor.TransactionAttributeSource
hasTransactionAttribute, isCandidateClass 
- 
Field Details
- 
logger
Logger available to subclasses. 
 - 
 - 
Constructor Details
- 
MethodMapTransactionAttributeSource
public MethodMapTransactionAttributeSource() 
 - 
 - 
Method Details
- 
setMethodMap
Set a name/attribute map, consisting of "<fully-qualified class name>.<method-name>" method names (for example, "com.mycompany.mycode.MyClass.myMethod") andTransactionAttributeinstances (or Strings to be converted toTransactionAttributeinstances).Intended for configuration via setter injection, typically within a Spring bean factory. Relies on
afterPropertiesSet()being called afterwards.- Parameters:
 methodMap- saidMapfrom method name to attribute value- See Also:
 
 - 
setEmbeddedValueResolver
Description copied from interface:EmbeddedValueResolverAwareSet the StringValueResolver to use for resolving embedded definition values.- Specified by:
 setEmbeddedValueResolverin interfaceEmbeddedValueResolverAware
 - 
setBeanClassLoader
Description copied from interface:BeanClassLoaderAwareCallback that supplies the beanclass loaderto a bean instance.Invoked after the population of normal bean properties but before an initialization callback such as
InitializingBean'sInitializingBean.afterPropertiesSet()method or a custom init-method.- Specified by:
 setBeanClassLoaderin interfaceBeanClassLoaderAware- Parameters:
 beanClassLoader- the owning class loader
 - 
afterPropertiesSet
public void afterPropertiesSet()Eagerly initializes the specified"methodMap", if any.- Specified by:
 afterPropertiesSetin interfaceInitializingBean- See Also:
 
 - 
initMethodMap
Initialize the specified"methodMap", if any.- Parameters:
 methodMap- a Map from method names toTransactionAttributeinstances- See Also:
 
 - 
addTransactionalMethod
Add an attribute for a transactional method.Method names can end or start with "*" for matching multiple methods.
- Parameters:
 name- class and method name, separated by a dotattr- attribute associated with the method- Throws:
 IllegalArgumentException- in case of an invalid name
 - 
addTransactionalMethod
Add an attribute for a transactional method. Method names can end or start with "*" for matching multiple methods.- Parameters:
 clazz- target interface or classmappedName- mapped method nameattr- attribute associated with the method
 - 
addTransactionalMethod
Add an attribute for a transactional method.- Parameters:
 method- the methodattr- attribute associated with the method
 - 
isMatch
Return if the given method name matches the mapped name.The default implementation checks for "xxx*", "*xxx" and "*xxx*" matches, as well as direct equality.
- Parameters:
 methodName- the method name of the classmappedName- the name in the descriptor- Returns:
 - if the names match
 - See Also:
 
 - 
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 (can benull, in which case the declaring class of the method must be used)- Returns:
 - the matching transaction attribute, or 
nullif none found 
 - 
equals
 - 
hashCode
public int hashCode() - 
toString
 
 -