Class NameMatchTransactionAttributeSource
- java.lang.Object
- org.springframework.transaction.interceptor.NameMatchTransactionAttributeSource
- All Implemented Interfaces:
Serializable
,TransactionAttributeSource
public class NameMatchTransactionAttributeSource extends Object implements TransactionAttributeSource, Serializable
SimpleTransactionAttributeSource
implementation 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 void
addTransactionalMethod(String methodName, TransactionAttribute attr)
Add an attribute for a transactional method.boolean
equals(Object other)
TransactionAttribute
getTransactionAttribute(Method method, Class<?> targetClass)
Return the transaction attribute for the given method, ornull
if the method is non-transactional.int
hashCode()
protected boolean
isMatch(String methodName, String mappedName)
Return if the given method name matches the mapped name.void
setNameMap(Map<String,TransactionAttribute> nameMap)
Set a name/attribute map, consisting of method names (e.g.void
setProperties(Properties transactionAttributes)
Parses the given properties into a name/attribute map.String
toString()
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:TransactionAttributeSource
Return the transaction attribute for the given method, ornull
if the method is non-transactional.- Specified by:
getTransactionAttribute
in 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
null
if 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)