public class NameMatchTransactionAttributeSource extends Object implements TransactionAttributeSource, EmbeddedValueResolverAware, InitializingBean, Serializable
TransactionAttributeSource
implementation that
allows attributes to be matched by registered name.isMatch(java.lang.String, java.lang.String)
,
MethodMapTransactionAttributeSource
,
Serialized FormModifier and Type | Field and Description |
---|---|
protected static Log |
logger
Logger available to subclasses.
|
Constructor and Description |
---|
NameMatchTransactionAttributeSource() |
Modifier and Type | Method and Description |
---|---|
void |
addTransactionalMethod(String methodName,
TransactionAttribute attr)
Add an attribute for a transactional method.
|
void |
afterPropertiesSet()
Invoked by the containing
BeanFactory after it has set all bean properties
and satisfied BeanFactoryAware , ApplicationContextAware etc. |
boolean |
equals(Object other) |
TransactionAttribute |
getTransactionAttribute(Method method,
Class<?> targetClass)
Return the transaction attribute for the given method,
or
null if the method is non-transactional. |
int |
hashCode() |
protected boolean |
isMatch(String methodName,
String mappedName)
Determine if the given method name matches the mapped name.
|
void |
setEmbeddedValueResolver(StringValueResolver resolver)
Set the StringValueResolver to use for resolving embedded definition values.
|
void |
setNameMap(Map<String,TransactionAttribute> nameMap)
Set a name/attribute map, consisting of method names
(e.g.
|
void |
setProperties(Properties transactionAttributes)
Parse the given properties into a name/attribute map.
|
String |
toString() |
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
isCandidateClass
protected static final Log logger
Static for optimal serialization.
public void setNameMap(Map<String,TransactionAttribute> nameMap)
TransactionAttribute
instances.public void setProperties(Properties transactionAttributes)
Expects method names as keys and String attributes definitions as values,
parsable into TransactionAttribute
instances via a
TransactionAttributeEditor
.
public void addTransactionalMethod(String methodName, TransactionAttribute attr)
Method names can be exact matches, or of the pattern "xxx*", "*xxx", or "*xxx*" for matching multiple methods.
methodName
- the name of the methodattr
- attribute associated with the methodpublic void setEmbeddedValueResolver(StringValueResolver resolver)
EmbeddedValueResolverAware
setEmbeddedValueResolver
in interface EmbeddedValueResolverAware
public void afterPropertiesSet()
InitializingBean
BeanFactory
after it has set all bean properties
and satisfied BeanFactoryAware
, ApplicationContextAware
etc.
This method allows the bean instance to perform validation of its overall configuration and final initialization when all bean properties have been set.
afterPropertiesSet
in interface InitializingBean
@Nullable public TransactionAttribute getTransactionAttribute(Method method, @Nullable Class<?> targetClass)
TransactionAttributeSource
null
if the method is non-transactional.getTransactionAttribute
in interface TransactionAttributeSource
method
- the method to introspecttargetClass
- the target class (may be null
,
in which case the declaring class of the method must be used)null
if none foundprotected boolean isMatch(String methodName, String mappedName)
The default implementation checks for "xxx*", "*xxx", and "*xxx*" matches, as well as direct equality. Can be overridden in subclasses.
methodName
- the method name of the classmappedName
- the name in the descriptortrue
if the names matchPatternMatchUtils.simpleMatch(String, String)