Package 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 forBeanDefinitionDecorators
wishing to add aninterceptor
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 thetarget
property ofProxyFactoryBean
.Chaining is correctly handled, ensuring that only one
ProxyFactoryBean
definition is created. If a previousBeanDefinitionDecorator
already created theProxyFactoryBean
then the interceptor is simply added to the existing definition.Subclasses have only to create the
BeanDefinition
to the interceptor that they wish to add.- Since:
- 2.0
- Author:
- Rob Harrop, Juergen Hoeller
- See Also:
MethodInterceptor
Constructor Summary
Constructors Constructor Description AbstractInterceptorDrivenBeanDefinitionDecorator()
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract BeanDefinition
createInterceptorDefinition(Node node)
Subclasses should implement this method to return theBeanDefinition
for the interceptor they wish to apply to the bean being decorated.BeanDefinitionHolder
decorate(Node node, BeanDefinitionHolder definitionHolder, ParserContext parserContext)
Parse the specifiedNode
(either an element or an attribute) and decorate the suppliedBeanDefinition
, returning the decorated definition.protected String
getInterceptorNameSuffix(BeanDefinition interceptorDefinition)
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 specifiedNode
(either an element or an attribute) and decorate the suppliedBeanDefinition
, 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 interfaceBeanDefinitionDecorator
getInterceptorNameSuffix
protected String getInterceptorNameSuffix(BeanDefinition interceptorDefinition)
createInterceptorDefinition
protected abstract BeanDefinition createInterceptorDefinition(Node node)
Subclasses should implement this method to return theBeanDefinition
for the interceptor they wish to apply to the bean being decorated.