Package org.springframework.aop.aspectj.annotation

# Class LazySingletonAspectInstanceFactoryDecorator

java.lang.Object
org.springframework.aop.aspectj.annotation.LazySingletonAspectInstanceFactoryDecorator

All Implemented Interfaces:
  `Serializable`, `MetadataAwareAspectInstanceFactory`, `AspectInstanceFactory`, `org.springframework.core.Ordered`

public class LazySingletonAspectInstanceFactoryDecorator extends Object implements MetadataAwareAspectInstanceFactory, Serializable
Decorator to cause a `MetadataAwareAspectInstanceFactory` to instantiate only once.

Since:
  2.0
Author:
  Rod Johnson, Juergen Hoeller
See Also:
  - Serialized Form

## Field Summary

### Fields inherited from interface org.springframework.core.Ordered

`HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE`

## Constructor Summary

Constructors
Constructor
Description
`LazySingletonAspectInstanceFactoryDecorator(MetadataAwareAspectInstanceFactory maaif)`
Create a new lazily initializing decorator for the given AspectInstanceFactory.

## Method Summary

Modifier and Type
Method
Description
`ClassLoader`
`getAspectClassLoader()`
Expose the aspect class loader that this factory uses.
`Object`
`getAspectCreationMutex()`
Get the best possible creation mutex for this factory.
`Object`
`getAspectInstance()`
Create an instance of this factory's aspect.
`AspectMetadata`
`getAspectMetadata()`
Get the AspectJ AspectMetadata for this factory's aspect.
`int`
`getOrder()`
`boolean`
`isMaterialized()`
`String`
`toString()`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## Constructor Details

### LazySingletonAspectInstanceFactoryDecorator

public LazySingletonAspectInstanceFactoryDecorator(MetadataAwareAspectInstanceFactory maaif)
Create a new lazily initializing decorator for the given AspectInstanceFactory.

Parameters:
  `maaif` - the MetadataAwareAspectInstanceFactory to decorate

## Method Details

### 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`)

### isMaterialized

public boolean isMaterialized()

### getAspectClassLoader

@Nullable 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 (or `null` for the bootstrap loader)
See Also:
  - `ClassUtils.getDefaultClassLoader()`

### getAspectMetadata

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

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

### getAspectCreationMutex

@Nullable public Object getAspectCreationMutex()
Description copied from interface: `MetadataAwareAspectInstanceFactory`
Get the best possible creation mutex for this factory.

Specified by:
  `getAspectCreationMutex` in interface `MetadataAwareAspectInstanceFactory`
Returns:
  the mutex object (may be `null` for no mutex to use)

### getOrder

public int getOrder()

Specified by:
  `getOrder` in interface `org.springframework.core.Ordered`

### toString

public String toString()

Overrides:
  `toString` in class `Object`