The Spring Framework

## org.springframework.aop.config
Class AbstractInterceptorDrivenBeanDefinitionDecorator

    java.lang.Object
      org.springframework.aop.config.AbstractInterceptorDrivenBeanDefinitionDecorator

All Implemented Interfaces:
  BeanDefinitionDecorator

    public abstract class AbstractInterceptorDrivenBeanDefinitionDecorator

extends Object
implements BeanDefinitionDecorator

Base implementation for `BeanDefinitionDecorators` wishing to add an `interceptor` to the resulting bean.

This base class controls the creation of the `ProxyFactoryBean` bean definition and wraps the original as an inner-bean definition for the `target` property of `ProxyFactoryBean`.

Chaining is correctly handled, ensuring that only one `ProxyFactoryBean` definition is created. If a previous `BeanDefinitionDecorator` already created the `ProxyFactoryBean` then the interceptor is simply added to the existing definition.

Subclasses have only to create the `BeanDefinition` to the interceptor they wish to add.

Since:
  2.0
Author:
  Rob Harrop
See Also:
  `MethodInterceptor`

Constructor Summary
`AbstractInterceptorDrivenBeanDefinitionDecorator()`

Method Summary
`protected abstract BeanDefinition` `createInterceptorDefinition(Node node)` Subclasses should implement this method to return the `BeanDefinition` for the interceptor they wish to apply to the bean being decorated.
`BeanDefinitionHolder` `decorate(Node node, BeanDefinitionHolder definitionHolder, ParserContext parserContext)` Parse the specified `Node` (either an element or an attribute) and decorate the supplied `BeanDefinition`, returning the decorated definition.
`protected String` `getInterceptorNameSuffix(BeanDefinition interceptorDefinition)`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### AbstractInterceptorDrivenBeanDefinitionDecorator

    public AbstractInterceptorDrivenBeanDefinitionDecorator()

Method Detail

### decorate

    public final BeanDefinitionHolder decorate(Node node,
                                               BeanDefinitionHolder definitionHolder,
                                               ParserContext parserContext)

  Description copied from interface: `BeanDefinitionDecorator`
  Parse the specified `Node` (either an element or an attribute) and decorate the supplied `BeanDefinition`, returning the decorated definition.

  Implementations may choose to return a completely new definition, which will replace the original definition in the resulting `BeanFactory`.

  The supplied `ParserContext` can be used to register any additional beans needed to support the main definition.

  Specified by:
    `decorate` in interface `BeanDefinitionDecorator`

### getInterceptorNameSuffix

    protected String getInterceptorNameSuffix(BeanDefinition interceptorDefinition)

### createInterceptorDefinition

    protected abstract BeanDefinition createInterceptorDefinition(Node node)

  Subclasses should implement this method to return the `BeanDefinition` for the interceptor they wish to apply to the bean being decorated.

The Spring Framework

Copyright © 2002-2008 The Spring Framework.