Package org.springframework.instrument.classloading

# Interface LoadTimeWeaver

All Known Implementing Classes:
  `DefaultContextLoadTimeWeaver`, `GlassFishLoadTimeWeaver`, `InstrumentationLoadTimeWeaver`, `JBossLoadTimeWeaver`, `ReflectiveLoadTimeWeaver`, `SimpleLoadTimeWeaver`, `TomcatLoadTimeWeaver`

public interface LoadTimeWeaver
Defines the contract for adding one or more `ClassFileTransformers` to a `ClassLoader`.

Implementations may operate on the current context `ClassLoader` or expose their own instrumentable `ClassLoader`.

Since:
  2.0
Author:
  Rod Johnson, Costin Leau
See Also:
  - `ClassFileTransformer`

## Method Summary

Modifier and Type
Method
Description
`void`
`addTransformer(ClassFileTransformer transformer)`
Add a `ClassFileTransformer` to be applied by this `LoadTimeWeaver`.
`ClassLoader`
`getInstrumentableClassLoader()`
Return a `ClassLoader` that supports instrumentation through AspectJ-style load-time weaving based on user-defined `ClassFileTransformers`.
`ClassLoader`
`getThrowawayClassLoader()`
Return a throwaway `ClassLoader`, enabling classes to be loaded and inspected without affecting the parent `ClassLoader`.

## Method Details

### addTransformer

void addTransformer(ClassFileTransformer transformer)
Add a `ClassFileTransformer` to be applied by this `LoadTimeWeaver`.

Parameters:
  `transformer` - the `ClassFileTransformer` to add

### getInstrumentableClassLoader

ClassLoader getInstrumentableClassLoader()
Return a `ClassLoader` that supports instrumentation through AspectJ-style load-time weaving based on user-defined `ClassFileTransformers`.

May be the current `ClassLoader`, or a `ClassLoader` created by this `LoadTimeWeaver` instance.

Returns:
  the `ClassLoader` which will expose instrumented classes according to the registered transformers

### getThrowawayClassLoader

ClassLoader getThrowawayClassLoader()
Return a throwaway `ClassLoader`, enabling classes to be loaded and inspected without affecting the parent `ClassLoader`.

Should not return the same instance of the `ClassLoader` returned from an invocation of `getInstrumentableClassLoader()`.

Returns:
  a temporary throwaway `ClassLoader`; should return a new instance for each call, with no existing state