Class NameMatchTransactionAttributeSource
- java.lang.Object
- org.springframework.transaction.interceptor.NameMatchTransactionAttributeSource
- All Implemented Interfaces:
Serializable,TransactionAttributeSource
public class NameMatchTransactionAttributeSource extends Object implements TransactionAttributeSource, Serializable
SimpleTransactionAttributeSourceimplementation that allows attributes to be matched by registered name.- Since:
- 21.08.2003
- Author:
- Juergen Hoeller
- See Also:
isMatch(java.lang.String, java.lang.String),MethodMapTransactionAttributeSource, Serialized Form
Constructor Summary
Constructors Constructor Description NameMatchTransactionAttributeSource()
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddTransactionalMethod(String methodName, TransactionAttribute attr)Add an attribute for a transactional method.booleanequals(Object other)TransactionAttributegetTransactionAttribute(Method method, Class<?> targetClass)Return the transaction attribute for the given method, ornullif the method is non-transactional.inthashCode()protected booleanisMatch(String methodName, String mappedName)Return if the given method name matches the mapped name.voidsetNameMap(Map<String,TransactionAttribute> nameMap)Set a name/attribute map, consisting of method names (e.g.voidsetProperties(Properties transactionAttributes)Parses the given properties into a name/attribute map.StringtoString()
Constructor Detail
NameMatchTransactionAttributeSource
public NameMatchTransactionAttributeSource()
Method Detail
setNameMap
public void setNameMap(Map<String,TransactionAttribute> nameMap)
Set a name/attribute map, consisting of method names (e.g. "myMethod") and TransactionAttribute instances (or Strings to be converted to TransactionAttribute instances).
setProperties
public void setProperties(Properties transactionAttributes)
Parses the given properties into a name/attribute map. Expects method names as keys and String attributes definitions as values, parsable into TransactionAttribute instances via TransactionAttributeEditor.
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 methodattr- attribute associated with the method
getTransactionAttribute
public TransactionAttribute getTransactionAttribute(Method method, 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 (may benull, in which case the declaring class of the method must be used)- Returns:
- the matching transaction attribute, or
nullif none found
isMatch
protected boolean isMatch(String methodName, String mappedName)
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. Can be overridden in subclasses.
- Parameters:
methodName- the method name of the classmappedName- the name in the descriptor- Returns:
- if the names match
- See Also:
PatternMatchUtils.simpleMatch(String, String)