Class AspectJWeavingEnabler
- java.lang.Object
- org.springframework.context.weaving.AspectJWeavingEnabler
- All Implemented Interfaces:
Aware
,BeanClassLoaderAware
,BeanFactoryPostProcessor
,LoadTimeWeaverAware
,Ordered
public class AspectJWeavingEnabler extends Object implements BeanFactoryPostProcessor, BeanClassLoaderAware, LoadTimeWeaverAware, Ordered
Post-processor that registers AspectJ'sClassPreProcessorAgentAdapter
with the Spring application context's defaultLoadTimeWeaver
.- Since:
- 2.5
- Author:
- Juergen Hoeller, Ramnivas Laddad
Field Summary
Fields Modifier and Type Field Description static String
ASPECTJ_AOP_XML_RESOURCE
Fields inherited from interface org.springframework.core.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
Constructor Summary
Constructors Constructor Description AspectJWeavingEnabler()
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static void
enableAspectJWeaving(LoadTimeWeaver weaverToUse, ClassLoader beanClassLoader)
Enable AspectJ weaving with the givenLoadTimeWeaver
.int
getOrder()
Get the order value of this object.void
postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory)
Modify the application context's internal bean factory after its standard initialization.void
setBeanClassLoader(ClassLoader classLoader)
Callback that supplies the beanclass loader
to a bean instance.void
setLoadTimeWeaver(LoadTimeWeaver loadTimeWeaver)
Set theLoadTimeWeaver
of this object's containingApplicationContext
.
Field Detail
ASPECTJ_AOP_XML_RESOURCE
public static final String ASPECTJ_AOP_XML_RESOURCE
- See Also:
- Constant Field Values
Constructor Detail
AspectJWeavingEnabler
public AspectJWeavingEnabler()
Method Detail
setBeanClassLoader
public void setBeanClassLoader(ClassLoader classLoader)
Description copied from interface:BeanClassLoaderAware
Callback that supplies the beanclass 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 interfaceBeanClassLoaderAware
- Parameters:
classLoader
- the owning class loader; may benull
in which case a defaultClassLoader
must be used, for example theClassLoader
obtained viaClassUtils.getDefaultClassLoader()
setLoadTimeWeaver
public void setLoadTimeWeaver(LoadTimeWeaver loadTimeWeaver)
Description copied from interface:LoadTimeWeaverAware
Set theLoadTimeWeaver
of this object's containingApplicationContext
.Invoked after the population of normal bean properties but before an initialization callback like
InitializingBean's
afterPropertiesSet()
or a custom init-method. Invoked afterApplicationContextAware's
setApplicationContext(..)
.NOTE: This method will only be called if there actually is a
LoadTimeWeaver
available in the application context. If there is none, the method will simply not get invoked, assuming that the implementing object is able to activate its weaving dependency accordingly.- Specified by:
setLoadTimeWeaver
in interfaceLoadTimeWeaverAware
- Parameters:
loadTimeWeaver
- theLoadTimeWeaver
instance (nevernull
)- See Also:
InitializingBean.afterPropertiesSet()
,ApplicationContextAware.setApplicationContext(org.springframework.context.ApplicationContext)
getOrder
public int getOrder()
Description copied from interface:Ordered
Get the order value of this object.Higher values are interpreted as lower priority. As a consequence, the object with the lowest value has the highest priority (somewhat analogous to Servlet
load-on-startup
values).Same order values will result in arbitrary sort positions for the affected objects.
- Specified by:
getOrder
in interfaceOrdered
- Returns:
- the order value
- See Also:
Ordered.HIGHEST_PRECEDENCE
,Ordered.LOWEST_PRECEDENCE
postProcessBeanFactory
public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException
Description copied from interface:BeanFactoryPostProcessor
Modify the application context's internal bean factory after its standard initialization. All bean definitions will have been loaded, but no beans will have been instantiated yet. This allows for overriding or adding properties even to eager-initializing beans.- Specified by:
postProcessBeanFactory
in interfaceBeanFactoryPostProcessor
- Parameters:
beanFactory
- the bean factory used by the application context- Throws:
BeansException
- in case of errors
enableAspectJWeaving
public static void enableAspectJWeaving(LoadTimeWeaver weaverToUse, ClassLoader beanClassLoader)
Enable AspectJ weaving with the givenLoadTimeWeaver
.- Parameters:
weaverToUse
- the LoadTimeWeaver to apply to (ornull
for a default weaver)beanClassLoader
- the class loader to create a default weaver for (if necessary)