Package org.springframework.context.weaving

# Class AspectJWeavingEnabler

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

All Implemented Interfaces:
  `org.springframework.beans.factory.Aware`, `org.springframework.beans.factory.BeanClassLoaderAware`, `org.springframework.beans.factory.config.BeanFactoryPostProcessor`, `LoadTimeWeaverAware`, `org.springframework.core.Ordered`

public class AspectJWeavingEnabler extends Object implements org.springframework.beans.factory.config.BeanFactoryPostProcessor, org.springframework.beans.factory.BeanClassLoaderAware, LoadTimeWeaverAware, org.springframework.core.Ordered
Post-processor that registers AspectJ's `ClassPreProcessorAgentAdapter` with the Spring application context's default `LoadTimeWeaver`.

Since:
  2.5
Author:
  Juergen Hoeller, Ramnivas Laddad

## Field Summary

Fields
Modifier and Type
Field
Description
`static final String`
`ASPECTJ_AOP_XML_RESOURCE`
The `aop.xml` resource location.

### Fields inherited from interface org.springframework.core.Ordered

`HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE`

## Constructor Summary

Constructors
Constructor
Description
`AspectJWeavingEnabler()`

## Method Summary

Modifier and Type
Method
Description
`static void`
`enableAspectJWeaving(LoadTimeWeaver weaverToUse, ClassLoader beanClassLoader)`
Enable AspectJ weaving with the given `LoadTimeWeaver`.
`int`
`getOrder()`
`void`
`postProcessBeanFactory(org.springframework.beans.factory.config.ConfigurableListableBeanFactory beanFactory)`
`void`
`setBeanClassLoader(ClassLoader classLoader)`
`void`
`setLoadTimeWeaver(LoadTimeWeaver loadTimeWeaver)`
Set the `LoadTimeWeaver` of this object's containing `ApplicationContext`.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### ASPECTJ_AOP_XML_RESOURCE

public static final String ASPECTJ_AOP_XML_RESOURCE
The `aop.xml` resource location.

See Also:
  - Constant Field Values

## Constructor Details

### AspectJWeavingEnabler

public AspectJWeavingEnabler()

## Method Details

### setBeanClassLoader

public void setBeanClassLoader(ClassLoader classLoader)

Specified by:
  `setBeanClassLoader` in interface `org.springframework.beans.factory.BeanClassLoaderAware`

### setLoadTimeWeaver

public void setLoadTimeWeaver(LoadTimeWeaver loadTimeWeaver)
Description copied from interface: `LoadTimeWeaverAware`
Set the `LoadTimeWeaver` of this object's containing `ApplicationContext`.

Invoked after the population of normal bean properties but before an initialization callback like `InitializingBean's` `afterPropertiesSet()` or a custom init-method. Invoked after `ApplicationContextAware'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 interface `LoadTimeWeaverAware`
Parameters:
  `loadTimeWeaver` - the `LoadTimeWeaver` instance (never `null`)
See Also:
  - `InitializingBean.afterPropertiesSet()`
  - `ApplicationContextAware.setApplicationContext(org.springframework.context.ApplicationContext)`

### getOrder

public int getOrder()

Specified by:
  `getOrder` in interface `org.springframework.core.Ordered`

### postProcessBeanFactory

public void postProcessBeanFactory(org.springframework.beans.factory.config.ConfigurableListableBeanFactory beanFactory) throws org.springframework.beans.BeansException

Specified by:
  `postProcessBeanFactory` in interface `org.springframework.beans.factory.config.BeanFactoryPostProcessor`
Throws:
  `org.springframework.beans.BeansException`

### enableAspectJWeaving

public static void enableAspectJWeaving(@Nullable LoadTimeWeaver weaverToUse, @Nullable ClassLoader beanClassLoader)
Enable AspectJ weaving with the given `LoadTimeWeaver`.

Parameters:
  `weaverToUse` - the LoadTimeWeaver to apply to (or `null` for a default weaver)
  `beanClassLoader` - the class loader to create a default weaver for (if necessary)