public class

DefaultContextLoadTimeWeaver

extends Object
implements BeanClassLoaderAware DisposableBean LoadTimeWeaver
java.lang.Object
   ↳ org.springframework.context.weaving.DefaultContextLoadTimeWeaver

Class Overview

Default LoadTimeWeaver bean for use in an application context, decorating an automatically detected internal LoadTimeWeaver.

Typically registered for the default bean name "loadTimeWeaver"; the most convenient way to achieve this is Spring's <context:load-time-weaver> XML tag.

This class implements a runtime environment check for obtaining the appropriate weaver implementation: As of Spring 2.5, it detects Sun's GlassFish, Oracle's OC4J, BEA's WebLogic 10, Spring's VM agent and any ClassLoader supported by Spring's ReflectiveLoadTimeWeaver (for example the TomcatInstrumentableClassLoader).

Summary

Fields
protected final Log logger
Public Constructors
DefaultContextLoadTimeWeaver()
Public Methods
void addTransformer(ClassFileTransformer transformer)
Add a ClassFileTransformer to be applied by this LoadTimeWeaver.
void destroy()
Invoked by a BeanFactory on destruction of a singleton.
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.
void setBeanClassLoader(ClassLoader classLoader)
Callback that supplies the bean class loader to a bean instance.
Protected Methods
LoadTimeWeaver createServerSpecificLoadTimeWeaver(ClassLoader classLoader)
[Expand]
Inherited Methods
From class java.lang.Object
From interface org.springframework.beans.factory.BeanClassLoaderAware
From interface org.springframework.beans.factory.DisposableBean
From interface org.springframework.instrument.classloading.LoadTimeWeaver

Fields

protected final Log logger

Public Constructors

public DefaultContextLoadTimeWeaver ()

Public Methods

public void addTransformer (ClassFileTransformer transformer)

Add a ClassFileTransformer to be applied by this LoadTimeWeaver.

Parameters
transformer the ClassFileTransformer to add

public void destroy ()

Invoked by a BeanFactory on destruction of a singleton.

public 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

public 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

public void setBeanClassLoader (ClassLoader classLoader)

Callback that supplies the bean class loader to a bean instance.

Invoked after the population of normal bean properties but before an initialization callback such as InitializingBean's afterPropertiesSet() method or a custom init-method.

Parameters
classLoader the owning class loader; may be null in which case a default ClassLoader must be used, for example the ClassLoader obtained via getDefaultClassLoader()

Protected Methods

protected LoadTimeWeaver createServerSpecificLoadTimeWeaver (ClassLoader classLoader)