Overview | Package | Class | Tree | Deprecated | Index | Help
| Spring Framework
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.springframework.context.weaving
Class DefaultContextLoadTimeWeaver

    java.lang.Object
      org.springframework.context.weaving.DefaultContextLoadTimeWeaver

All Implemented Interfaces:
  Aware, BeanClassLoaderAware, DisposableBean, LoadTimeWeaver

    public class DefaultContextLoadTimeWeaver

extends java.lang.Object
implements LoadTimeWeaver, BeanClassLoaderAware, DisposableBean

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 3.1, it detects Oracle WebLogic 10, Oracle OC4J 10, GlassFish 3, JBoss AS 5, 6 and 7, IBM WebSphere 7 and 8, `Spring's VM agent` and any `ClassLoader` supported by Spring's `ReflectiveLoadTimeWeaver` (for example the `TomcatInstrumentableClassLoader` for Tomcat 5, 6 and 7).

Since:
  2.5
Author:
  Juergen Hoeller, Ramnivas Laddad, Costin Leau
See Also:
  `ConfigurableApplicationContext.LOAD_TIME_WEAVER_BEAN_NAME`

Field Summary
`protected org.apache.commons.logging.Log` | `logger`

Constructor Summary
`DefaultContextLoadTimeWeaver()`
`DefaultContextLoadTimeWeaver(java.lang.ClassLoader beanClassLoader)`

Method Summary
`void` | `addTransformer(java.lang.instrument.ClassFileTransformer transformer)` Add a `ClassFileTransformer` to be applied by this `LoadTimeWeaver`.
`protected LoadTimeWeaver` | `createServerSpecificLoadTimeWeaver(java.lang.ClassLoader classLoader)`
`void` | `destroy()` Invoked by a BeanFactory on destruction of a singleton.
`java.lang.ClassLoader` | `getInstrumentableClassLoader()` Return a `ClassLoader` that supports instrumentation through AspectJ-style load-time weaving based on user-defined `ClassFileTransformers`.
`java.lang.ClassLoader` | `getThrowawayClassLoader()` Return a throwaway `ClassLoader`, enabling classes to be loaded and inspected without affecting the parent `ClassLoader`.
`void` | `setBeanClassLoader(java.lang.ClassLoader classLoader)` Callback that supplies the bean `class loader` to a bean instance.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### logger

    protected final org.apache.commons.logging.Log logger

Constructor Detail

### DefaultContextLoadTimeWeaver

    public DefaultContextLoadTimeWeaver()

### DefaultContextLoadTimeWeaver

    public DefaultContextLoadTimeWeaver(java.lang.ClassLoader beanClassLoader)

Method Detail

### setBeanClassLoader

    public void setBeanClassLoader(java.lang.ClassLoader classLoader)

  Description copied from interface: `BeanClassLoaderAware`
  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` `InitializingBean.afterPropertiesSet()` method or a custom init-method.

  Specified by:
    `setBeanClassLoader` in interface `BeanClassLoaderAware`
  Parameters:
    `classLoader` - the owning class loader; may be `null` in which case a default `ClassLoader` must be used, for example the `ClassLoader` obtained via `ClassUtils.getDefaultClassLoader()`

### createServerSpecificLoadTimeWeaver

    protected LoadTimeWeaver createServerSpecificLoadTimeWeaver(java.lang.ClassLoader classLoader)

### destroy

    public void destroy()

  Description copied from interface: `DisposableBean`
  Invoked by a BeanFactory on destruction of a singleton.

  Specified by:
    `destroy` in interface `DisposableBean`

### addTransformer

    public void addTransformer(java.lang.instrument.ClassFileTransformer transformer)

  Description copied from interface: `LoadTimeWeaver`
  Add a `ClassFileTransformer` to be applied by this `LoadTimeWeaver`.

  Specified by:
    `addTransformer` in interface `LoadTimeWeaver`
  Parameters:
    `transformer` - the `ClassFileTransformer` to add

### getInstrumentableClassLoader

    public java.lang.ClassLoader getInstrumentableClassLoader()

  Description copied from interface: `LoadTimeWeaver`
  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.

  Specified by:
    `getInstrumentableClassLoader` in interface `LoadTimeWeaver`
  Returns:
    the `ClassLoader` which will expose instrumented classes according to the registered transformers

### getThrowawayClassLoader

    public java.lang.ClassLoader getThrowawayClassLoader()

  Description copied from interface: `LoadTimeWeaver`
  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 `LoadTimeWeaver.getInstrumentableClassLoader()`.

  Specified by:
    `getThrowawayClassLoader` in interface `LoadTimeWeaver`
  Returns:
    a temporary throwaway `ClassLoader`; should return a new instance for each call, with no existing state

Overview | Package | Class | Tree | Deprecated | Index | Help
| Spring Framework
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD