|
|
|
|
@ -128,6 +128,8 @@ public abstract class TransactionAspectSupport implements BeanFactoryAware, Init
@@ -128,6 +128,8 @@ public abstract class TransactionAspectSupport implements BeanFactoryAware, Init
|
|
|
|
|
|
|
|
|
|
private String transactionManagerBeanName; |
|
|
|
|
|
|
|
|
|
private PlatformTransactionManager transactionManager; |
|
|
|
|
|
|
|
|
|
private TransactionAttributeSource transactionAttributeSource; |
|
|
|
|
|
|
|
|
|
private BeanFactory beanFactory; |
|
|
|
|
@ -158,16 +160,14 @@ public abstract class TransactionAspectSupport implements BeanFactoryAware, Init
@@ -158,16 +160,14 @@ public abstract class TransactionAspectSupport implements BeanFactoryAware, Init
|
|
|
|
|
* @see #setTransactionManagerBeanName |
|
|
|
|
*/ |
|
|
|
|
public void setTransactionManager(PlatformTransactionManager transactionManager) { |
|
|
|
|
if (transactionManager != null) { |
|
|
|
|
this.transactionManagerCache.put(DEFAULT_TRANSACTION_MANAGER_KEY, transactionManager); |
|
|
|
|
} |
|
|
|
|
this.transactionManager = transactionManager; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Return the default transaction manager, or {@code null} if unknown. |
|
|
|
|
*/ |
|
|
|
|
public PlatformTransactionManager getTransactionManager() { |
|
|
|
|
return this.transactionManagerCache.get(DEFAULT_TRANSACTION_MANAGER_KEY); |
|
|
|
|
return this.transactionManager; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
@ -240,11 +240,11 @@ public abstract class TransactionAspectSupport implements BeanFactoryAware, Init
@@ -240,11 +240,11 @@ public abstract class TransactionAspectSupport implements BeanFactoryAware, Init
|
|
|
|
|
*/ |
|
|
|
|
@Override |
|
|
|
|
public void afterPropertiesSet() { |
|
|
|
|
if (getTransactionManager() == null && this.beanFactory == null) { |
|
|
|
|
if (getTransactionManager() == null && getBeanFactory() == null) { |
|
|
|
|
throw new IllegalStateException( |
|
|
|
|
"Setting the property 'transactionManager' or running in a BeanFactory is required"); |
|
|
|
|
} |
|
|
|
|
if (this.transactionAttributeSource == null) { |
|
|
|
|
if (getTransactionAttributeSource() == null) { |
|
|
|
|
throw new IllegalStateException( |
|
|
|
|
"Either 'transactionAttributeSource' or 'transactionAttributes' is required: " + |
|
|
|
|
"If there are no transactional methods, then don't use a transaction aspect."); |
|
|
|
|
@ -363,9 +363,12 @@ public abstract class TransactionAspectSupport implements BeanFactoryAware, Init
@@ -363,9 +363,12 @@ public abstract class TransactionAspectSupport implements BeanFactoryAware, Init
|
|
|
|
|
else { |
|
|
|
|
PlatformTransactionManager defaultTransactionManager = getTransactionManager(); |
|
|
|
|
if (defaultTransactionManager == null) { |
|
|
|
|
defaultTransactionManager = this.beanFactory.getBean(PlatformTransactionManager.class); |
|
|
|
|
this.transactionManagerCache.putIfAbsent( |
|
|
|
|
DEFAULT_TRANSACTION_MANAGER_KEY, defaultTransactionManager); |
|
|
|
|
defaultTransactionManager = this.transactionManagerCache.get(DEFAULT_TRANSACTION_MANAGER_KEY); |
|
|
|
|
if (defaultTransactionManager == null) { |
|
|
|
|
defaultTransactionManager = this.beanFactory.getBean(PlatformTransactionManager.class); |
|
|
|
|
this.transactionManagerCache.putIfAbsent( |
|
|
|
|
DEFAULT_TRANSACTION_MANAGER_KEY, defaultTransactionManager); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
return defaultTransactionManager; |
|
|
|
|
} |
|
|
|
|
@ -567,6 +570,7 @@ public abstract class TransactionAspectSupport implements BeanFactoryAware, Init
@@ -567,6 +570,7 @@ public abstract class TransactionAspectSupport implements BeanFactoryAware, Init
|
|
|
|
|
|
|
|
|
|
public TransactionInfo(PlatformTransactionManager transactionManager, |
|
|
|
|
TransactionAttribute transactionAttribute, String joinpointIdentification) { |
|
|
|
|
|
|
|
|
|
this.transactionManager = transactionManager; |
|
|
|
|
this.transactionAttribute = transactionAttribute; |
|
|
|
|
this.joinpointIdentification = joinpointIdentification; |
|
|
|
|
|