org.springframework.transaction.interceptor
Class TransactionInterceptor

java.lang.Object
  extended by org.springframework.transaction.interceptor.TransactionAspectSupport
      extended by org.springframework.transaction.interceptor.TransactionInterceptor
All Implemented Interfaces:
java.io.Serializable, Aware, BeanFactoryAware, InitializingBean

public class TransactionInterceptor
extends TransactionAspectSupport
implements java.io.Serializable

AOP Alliance MethodInterceptor for declarative transaction management using the common Spring transaction infrastructure (PlatformTransactionManager).

Derives from the TransactionAspectSupport class which contains the integration with Spring's underlying transaction API. TransactionInterceptor simply calls the relevant superclass methods such as TransactionAspectSupport.createTransactionIfNecessary(java.lang.reflect.Method, java.lang.Class) in the correct order.

TransactionInterceptors are thread-safe.

Author:
Rod Johnson, Juergen Hoeller
See Also:
TransactionProxyFactoryBean, ProxyFactoryBean, ProxyFactory, Serialized Form

Nested Class Summary
private static class TransactionInterceptor.ThrowableHolder
          Internal holder class for a Throwable, used as a return value from a TransactionCallback (to be subsequently unwrapped again).
private static class TransactionInterceptor.ThrowableHolderException
          Internal holder class for a Throwable, used as a RuntimeException to be thrown from a TransactionCallback (and subsequently unwrapped again).
 
Nested classes/interfaces inherited from class org.springframework.transaction.interceptor.TransactionAspectSupport
TransactionAspectSupport.TransactionInfo
 
Field Summary
 
Fields inherited from class org.springframework.transaction.interceptor.TransactionAspectSupport
logger
 
Constructor Summary
TransactionInterceptor()
          Create a new TransactionInterceptor.
TransactionInterceptor(PlatformTransactionManager ptm, java.util.Properties attributes)
          Create a new TransactionInterceptor.
TransactionInterceptor(PlatformTransactionManager ptm, TransactionAttributeSource tas)
          Create a new TransactionInterceptor.
 
Method Summary
 java.lang.Object invoke(MethodInvocation invocation)
           
private  void readObject(java.io.ObjectInputStream ois)
           
private  void writeObject(java.io.ObjectOutputStream oos)
           
 
Methods inherited from class org.springframework.transaction.interceptor.TransactionAspectSupport
afterPropertiesSet, cleanupTransactionInfo, commitTransactionAfterReturning, completeTransactionAfterThrowing, createTransactionIfNecessary, createTransactionIfNecessary, currentTransactionInfo, currentTransactionStatus, determineTransactionManager, getBeanFactory, getTransactionAttributeSource, getTransactionManager, getTransactionManagerBeanName, methodIdentification, methodIdentification, prepareTransactionInfo, setBeanFactory, setTransactionAttributes, setTransactionAttributeSource, setTransactionAttributeSources, setTransactionManager, setTransactionManagerBeanName
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TransactionInterceptor

public TransactionInterceptor()
Create a new TransactionInterceptor.

Transaction manager and transaction attributes still need to be set.

See Also:
TransactionAspectSupport.setTransactionManager(org.springframework.transaction.PlatformTransactionManager), TransactionAspectSupport.setTransactionAttributes(java.util.Properties), TransactionAspectSupport.setTransactionAttributeSource(TransactionAttributeSource)

TransactionInterceptor

public TransactionInterceptor(PlatformTransactionManager ptm,
                              java.util.Properties attributes)
Create a new TransactionInterceptor.

Parameters:
ptm - the transaction manager to perform the actual transaction management
attributes - the transaction attributes in properties format
See Also:
TransactionAspectSupport.setTransactionManager(org.springframework.transaction.PlatformTransactionManager), TransactionAspectSupport.setTransactionAttributes(java.util.Properties)

TransactionInterceptor

public TransactionInterceptor(PlatformTransactionManager ptm,
                              TransactionAttributeSource tas)
Create a new TransactionInterceptor.

Parameters:
ptm - the transaction manager to perform the actual transaction management
tas - the attribute source to be used to find transaction attributes
See Also:
TransactionAspectSupport.setTransactionManager(org.springframework.transaction.PlatformTransactionManager), TransactionAspectSupport.setTransactionAttributeSource(TransactionAttributeSource)
Method Detail

invoke

public java.lang.Object invoke(MethodInvocation invocation)
                        throws java.lang.Throwable
Throws:
java.lang.Throwable

writeObject

private void writeObject(java.io.ObjectOutputStream oos)
                  throws java.io.IOException
Throws:
java.io.IOException

readObject

private void readObject(java.io.ObjectInputStream ois)
                 throws java.io.IOException,
                        java.lang.ClassNotFoundException
Throws:
java.io.IOException
java.lang.ClassNotFoundException