Class DefaultContextLoadTimeWeaver
java.lang.Object
org.springframework.context.weaving.DefaultContextLoadTimeWeaver
- All Implemented Interfaces:
org.springframework.beans.factory.Aware,org.springframework.beans.factory.BeanClassLoaderAware,org.springframework.beans.factory.DisposableBean,LoadTimeWeaver
public class DefaultContextLoadTimeWeaver
extends Object
implements LoadTimeWeaver, org.springframework.beans.factory.BeanClassLoaderAware, org.springframework.beans.factory.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 or @EnableLoadTimeWeaving
on a @Configuration class.
This class implements a runtime environment check for obtaining the
appropriate weaver implementation, including
Spring's VM agent and any ClassLoader
supported by Spring's ReflectiveLoadTimeWeaver.
- Since:
- 2.5
- Author:
- Juergen Hoeller, Ramnivas Laddad, Costin Leau
- See Also:
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddTransformer(ClassFileTransformer transformer) Add aClassFileTransformerto be applied by thisLoadTimeWeaver.protected LoadTimeWeavercreateServerSpecificLoadTimeWeaver(ClassLoader classLoader) voiddestroy()Return aClassLoaderthat supports instrumentation through AspectJ-style load-time weaving based on user-definedClassFileTransformers.Return a throwawayClassLoader, enabling classes to be loaded and inspected without affecting the parentClassLoader.voidsetBeanClassLoader(ClassLoader classLoader)
-
Field Details
-
logger
protected final org.apache.commons.logging.Log logger
-
-
Constructor Details
-
DefaultContextLoadTimeWeaver
public DefaultContextLoadTimeWeaver() -
DefaultContextLoadTimeWeaver
-
-
Method Details
-
setBeanClassLoader
- Specified by:
setBeanClassLoaderin interfaceorg.springframework.beans.factory.BeanClassLoaderAware
-
createServerSpecificLoadTimeWeaver
-
destroy
public void destroy()- Specified by:
destroyin interfaceorg.springframework.beans.factory.DisposableBean
-
addTransformer
Description copied from interface:LoadTimeWeaverAdd aClassFileTransformerto be applied by thisLoadTimeWeaver.- Specified by:
addTransformerin interfaceLoadTimeWeaver- Parameters:
transformer- theClassFileTransformerto add
-
getInstrumentableClassLoader
Description copied from interface:LoadTimeWeaverReturn aClassLoaderthat supports instrumentation through AspectJ-style load-time weaving based on user-definedClassFileTransformers.May be the current
ClassLoader, or aClassLoadercreated by thisLoadTimeWeaverinstance.- Specified by:
getInstrumentableClassLoaderin interfaceLoadTimeWeaver- Returns:
- the
ClassLoaderwhich will expose instrumented classes according to the registered transformers
-
getThrowawayClassLoader
Description copied from interface:LoadTimeWeaverReturn a throwawayClassLoader, enabling classes to be loaded and inspected without affecting the parentClassLoader.Should not return the same instance of the
ClassLoaderreturned from an invocation ofLoadTimeWeaver.getInstrumentableClassLoader().- Specified by:
getThrowawayClassLoaderin interfaceLoadTimeWeaver- Returns:
- a temporary throwaway
ClassLoader; should return a new instance for each call, with no existing state
-