org.springframework.transaction.interceptor

## Class TransactionInterceptor

- java.lang.Object
- - org.springframework.transaction.interceptor.TransactionAspectSupport
  - - org.springframework.transaction.interceptor.TransactionInterceptor

- All Implemented Interfaces:
    Serializable, Advice, Interceptor, MethodInterceptor, Aware, BeanFactoryAware, InitializingBean

      public class TransactionInterceptor
      extends TransactionAspectSupport
      implements MethodInterceptor, 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.invokeWithinTransaction(java.lang.reflect.Method, java.lang.Class, org.springframework.transaction.interceptor.TransactionAspectSupport.InvocationCallback)` in the correct order.

  TransactionInterceptors are thread-safe.

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

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.springframework.transaction.interceptor.TransactionAspectSupport

      `TransactionAspectSupport.InvocationCallback, TransactionAspectSupport.TransactionInfo`

  - ### Field Summary

    - ### Fields inherited from class org.springframework.transaction.interceptor.TransactionAspectSupport

      `logger`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `TransactionInterceptor()` Create a new TransactionInterceptor.
    `TransactionInterceptor(PlatformTransactionManager ptm, Properties attributes)` Create a new TransactionInterceptor.
    `TransactionInterceptor(PlatformTransactionManager ptm, TransactionAttributeSource tas)` Create a new TransactionInterceptor.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `Object` | `invoke(MethodInvocation invocation)`

    - ### Methods inherited from class org.springframework.transaction.interceptor.TransactionAspectSupport

      `afterPropertiesSet, cleanupTransactionInfo, commitTransactionAfterReturning, completeTransactionAfterThrowing, createTransactionIfNecessary, createTransactionIfNecessary, currentTransactionInfo, currentTransactionStatus, determineTransactionManager, getBeanFactory, getTransactionAttributeSource, getTransactionManager, getTransactionManagerBeanName, invokeWithinTransaction, 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,
                                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 Object invoke(MethodInvocation invocation)
                        throws Throwable

      Specified by:
        `invoke` in interface `MethodInterceptor`
      Throws:
        `Throwable`