org.springframework.aop.aspectj.annotation

## Class LazySingletonAspectInstanceFactoryDecorator

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

All Implemented Interfaces:
  MetadataAwareAspectInstanceFactory, AspectInstanceFactory, Ordered

    public class LazySingletonAspectInstanceFactoryDecorator
    extends Object
    implements MetadataAwareAspectInstanceFactory

Decorator to cause a `MetadataAwareAspectInstanceFactory` to instantiate only once.

Since:
  2.0
Author:
  Rod Johnson, Juergen Hoeller

### Field Summary

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

`HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE`

### Constructor Summary

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

### Method Summary

Methods
`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()` Return the order value of this object, with a higher value meaning greater in terms of sorting.
`boolean` `isMaterialized()`
`String` `toString()`

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

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

### Constructor Detail

#### LazySingletonAspectInstanceFactoryDecorator

    public LazySingletonAspectInstanceFactoryDecorator(MetadataAwareAspectInstanceFactory maaif)

Create a new lazily initializing decorator for the given AspectInstanceFactory.

Parameters:
  `maaif` - the MetadataAwareAspectInstanceFactory to decorate

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

#### isMaterialized

    public boolean isMaterialized()

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

Description copied from interface: `Ordered`
Return the order value of this object, with a higher value meaning greater in terms of sorting.

Normally starting with 0, with `Integer.MAX_VALUE` indicating the greatest value. Same order values will result in arbitrary positions for the affected objects.

Higher values can be interpreted as lower priority. As a consequence, the object with the lowest value has highest priority (somewhat analogous to Servlet "load-on-startup" values).

Specified by:
  `getOrder` in interface `Ordered`
Returns:
  the order value

#### toString

    public String toString()

Overrides:
  `toString` in class `Object`