org.springframework.aop.aspectj

## Class SingletonAspectInstanceFactory

- java.lang.Object
- - org.springframework.aop.aspectj.SingletonAspectInstanceFactory

All Implemented Interfaces:
  AspectInstanceFactory, Ordered

Direct Known Subclasses:
  SingletonMetadataAwareAspectInstanceFactory

    public class SingletonAspectInstanceFactory
    extends Object
    implements AspectInstanceFactory

Implementation of `AspectInstanceFactory` that is backed by a specified singleton object, returning the same instance for every `getAspectInstance()` call.

Since:
  2.0
Author:
  Rod Johnson, Juergen Hoeller
See Also:
  `SimpleAspectInstanceFactory`

### Field Summary

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

`HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE`

### Constructor Summary

Constructors
Constructor and Description
`SingletonAspectInstanceFactory(Object aspectInstance)` Create a new SingletonAspectInstanceFactory for the given aspect instance.

### Method Summary

Methods
`ClassLoader` `getAspectClassLoader()` Expose the aspect class loader that this factory uses.
`Object` `getAspectInstance()` Create an instance of this factory's aspect.
`int` `getOrder()` Determine the order for this factory's aspect instance, either an instance-specific order expressed through implementing the `Ordered` interface, or a fallback order.
`protected int` `getOrderForAspectClass(Class<?> aspectClass)` Determine a fallback order for the case that the aspect instance does not express an instance-specific order through implementing the `Ordered` interface.

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

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

### Constructor Detail

#### SingletonAspectInstanceFactory

    public SingletonAspectInstanceFactory(Object aspectInstance)

Create a new SingletonAspectInstanceFactory for the given aspect instance.

Parameters:
  `aspectInstance` - the singleton aspect instance

### Method Detail

#### getAspectInstance

    public final 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`)

#### getOrder

    public int getOrder()

Determine the order for this factory's aspect instance, either an instance-specific order expressed through implementing the `Ordered` interface, or a fallback order.

Specified by:
  `getOrder` in interface `Ordered`
Returns:
  the order value
See Also:
  `Ordered`, `getOrderForAspectClass(java.lang.Class<?>)`

#### getOrderForAspectClass

    protected int getOrderForAspectClass(Class<?> aspectClass)

Determine a fallback order for the case that the aspect instance does not express an instance-specific order through implementing the `Ordered` interface.

The default implementation simply returns `Ordered.LOWEST_PRECEDENCE`.

Parameters:
  `aspectClass` - the aspect class