Package org.springframework.aop.target

# Class HotSwappableTargetSource

java.lang.Object
org.springframework.aop.target.HotSwappableTargetSource

All Implemented Interfaces:
  `Serializable`, `TargetClassAware`, `TargetSource`

public class HotSwappableTargetSource extends Object implements TargetSource, Serializable
`TargetSource` implementation that caches a local target object, but allows the target to be swapped while the application is running.

If configuring an object of this class in a Spring IoC container, use constructor injection.

This TargetSource is serializable if the target is at the time of serialization.

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

## Constructor Summary

Constructors
Constructor
Description
`HotSwappableTargetSource(Object initialTarget)`
Create a new HotSwappableTargetSource with the given initial target object.

## Method Summary

Modifier and Type
Method
Description
`boolean`
`equals(Object other)`
Two HotSwappableTargetSources are equal if the current target objects are equal.
`Object`
`getTarget()`
Return a target instance.
`Class<?>`
`getTargetClass()`
Return the type of the current target object.
`int`
`hashCode()`
`Object`
`swap(Object newTarget)`
Swap the target, returning the old target object.
`String`
`toString()`

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

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

### Methods inherited from interface org.springframework.aop.TargetSource

`isStatic, releaseTarget`

## Constructor Details

### HotSwappableTargetSource

public HotSwappableTargetSource(Object initialTarget)
Create a new HotSwappableTargetSource with the given initial target object.

Parameters:
  `initialTarget` - the initial target object

## Method Details

### getTargetClass

public Class<?> getTargetClass()
Return the type of the current target object.

The returned type should usually be constant across all target objects.

Specified by:
  `getTargetClass` in interface `TargetClassAware`
Specified by:
  `getTargetClass` in interface `TargetSource`
Returns:
  the type of targets returned by this `TargetSource`

### getTarget

public Object getTarget()
Description copied from interface: `TargetSource`
Return a target instance. Invoked immediately before the AOP framework calls the "target" of an AOP method invocation.

Specified by:
  `getTarget` in interface `TargetSource`
Returns:
  the target object which contains the joinpoint, or `null` if there is no actual target instance

### swap

public Object swap(Object newTarget) throws IllegalArgumentException
Swap the target, returning the old target object.

Parameters:
  `newTarget` - the new target object
Returns:
  the old target object
Throws:
  `IllegalArgumentException` - if the new target is invalid

### equals

public boolean equals(@Nullable Object other)
Two HotSwappableTargetSources are equal if the current target objects are equal.

Overrides:
  `equals` in class `Object`

### hashCode

public int hashCode()

Overrides:
  `hashCode` in class `Object`

### toString

public String toString()

Overrides:
  `toString` in class `Object`