org.springframework.aop.aspectj.annotation
Class BeanFactoryAspectInstanceFactory

java.lang.Object
  extended by org.springframework.aop.aspectj.annotation.BeanFactoryAspectInstanceFactory
All Implemented Interfaces:
MetadataAwareAspectInstanceFactory, AspectInstanceFactory, Ordered
Direct Known Subclasses:
PrototypeAspectInstanceFactory

public class BeanFactoryAspectInstanceFactory
extends Object
implements MetadataAwareAspectInstanceFactory

AspectInstanceFactory implementation backed by a Spring BeanFactory.

Note that this may instantiate multiple times if using a prototype, which probably won't give the semantics you expect. Use a LazySingletonAspectInstanceFactoryDecorator to wrap this to ensure only one new aspect comes back.

Since:
2.0
Author:
Rod Johnson, Juergen Hoeller
See Also:
BeanFactory, LazySingletonAspectInstanceFactoryDecorator

Field Summary
 
Fields inherited from interface org.springframework.core.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
 
Constructor Summary
BeanFactoryAspectInstanceFactory(BeanFactory beanFactory, String name)
          Create a BeanFactoryAspectInstanceFactory.
BeanFactoryAspectInstanceFactory(BeanFactory beanFactory, String name, Class type)
          Create a BeanFactoryAspectInstanceFactory, providing a type that AspectJ should introspect to create AJType metadata.
 
Method Summary
 ClassLoader getAspectClassLoader()
          Expose the aspect class loader that this factory uses.
 Object getAspectInstance()
          Create an instance of this factory's aspect.
 AspectMetadata getAspectMetadata()
          Return the AspectJ AspectMetadata for this factory's aspect.
 int getOrder()
          Determine the order for this factory's target aspect, either an instance-specific order expressed through implementing the Ordered interface (only checked for singleton beans), or an order expressed through the Order annotation at the class level.
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

BeanFactoryAspectInstanceFactory

public BeanFactoryAspectInstanceFactory(BeanFactory beanFactory,
                                        String name)
Create a BeanFactoryAspectInstanceFactory. AspectJ will be called to introspect to create AJType metadata using the type returned for the given bean name from the BeanFactory.

Parameters:
beanFactory - BeanFactory to obtain instance(s) from
name - name of the bean

BeanFactoryAspectInstanceFactory

public BeanFactoryAspectInstanceFactory(BeanFactory beanFactory,
                                        String name,
                                        Class type)
Create a BeanFactoryAspectInstanceFactory, providing a type that AspectJ should introspect to create AJType metadata. Use if the BeanFactory may consider the type to be a subclass (as when using CGLIB), and the information should relate to a superclass.

Parameters:
beanFactory - BeanFactory to obtain instance(s) from
name - the name of the bean
type - the type that should be introspected by AspectJ
Method Detail

getAspectInstance

public Object getAspectInstance()
Description copied from interface: AspectInstanceFactory
Create an instance of this factory's aspect.

Specified by:
getAspectInstance in interface AspectInstanceFactory
Returns:
the aspect instance (never null)

getAspectClassLoader

public ClassLoader getAspectClassLoader()
Description copied from interface: AspectInstanceFactory
Expose the aspect class loader that this factory uses.

Specified by:
getAspectClassLoader in interface AspectInstanceFactory
Returns:
the aspect class loader (never null)

getAspectMetadata

public AspectMetadata getAspectMetadata()
Description copied from interface: MetadataAwareAspectInstanceFactory
Return the AspectJ AspectMetadata for this factory's aspect.

Specified by:
getAspectMetadata in interface MetadataAwareAspectInstanceFactory
Returns:
the aspect metadata

getOrder

public int getOrder()
Determine the order for this factory's target aspect, either an instance-specific order expressed through implementing the Ordered interface (only checked for singleton beans), or an order expressed through the Order annotation at the class level.

Specified by:
getOrder in interface Ordered
Returns:
the order value
See Also:
Ordered, Order

toString

public String toString()
Overrides:
toString in class Object