LoadTimeWeaver for this application context, available as
a bean with the name "loadTimeWeaver", similar to the <context:load-time-weaver>
element in Spring XML.
To be used on @Configuration classes;
the simplest possible example of which follows:
@Configuration
@EnableLoadTimeWeaving
public class AppConfig {
// application-specific @Bean definitions ...
}
The example above is equivalent to the following Spring XML configuration:
<beans>
<context:load-time-weaver/>
<!-- application-specific <bean> definitions -->
</beans>
LoadTimeWeaverAware interfaceLoadTimeWeaverAware interface
will then receive the LoadTimeWeaver reference automatically; for example,
Spring's JPA bootstrap support.
LoadTimeWeaverDefaultContextLoadTimeWeaver.
To customize the weaver used, the @Configuration class annotated with
@EnableLoadTimeWeaving may also implement the LoadTimeWeavingConfigurer
interface and return a custom LoadTimeWeaver instance through the
#getLoadTimeWeaver method:
@Configuration
@EnableLoadTimeWeaving
public class AppConfig implements LoadTimeWeavingConfigurer {
@Override
public LoadTimeWeaver getLoadTimeWeaver() {
MyLoadTimeWeaver ltw = new MyLoadTimeWeaver();
ltw.addClassTransformer(myClassFileTransformer);
// ...
return ltw;
}
}
The example above can be compared to the following Spring XML configuration:
<beans>
<context:load-time-weaver weaverClass="com.acme.MyLoadTimeWeaver"/>
</beans>
The code example differs from the XML example in that it actually instantiates the
MyLoadTimeWeaver type, meaning that it can also configure the instance, e.g.
calling the #addClassTransformer method. This demonstrates how the code-based
configuration approach is more flexible through direct programmatic access.
aspectjWeaving()
attribute, which will cause the AspectJ class transformer to
be registered through LoadTimeWeaver#addTransformer. AspectJ weaving will be
activated by default if a "META-INF/aop.xml" resource is present on the classpath.
Example:
@Configuration
@EnableLoadTimeWeaving(aspectjWeaving=ENABLED)
public class AppConfig {
}
The example above can be compared to the following Spring XML configuration:
<beans>
<context:load-time-weaver aspectj-weaving="on"/>
</beans>
The two examples are equivalent with one significant exception: in the XML case,
the functionality of <context:spring-configured> is implicitly enabled when
aspectj-weaving is "on". This does not occur when using
@EnableLoadTimeWeaving(aspectjWeaving=ENABLED). Instead you must explicitly add
@EnableSpringConfigured (included in the spring-aspects module)
LoadTimeWeaver, DefaultContextLoadTimeWeaver, org.aspectj.weaver.loadtime.ClassPreProcessorAgentAdapter
| Modifier and Type | Class and Description |
|---|---|
| public static enum | EnableLoadTimeWeaving.AspectJWeaving
AspectJ weaving enablement options. |
| Modifier and Type | Method and Description |
|---|---|
| public EnableLoadTimeWeaving. |
| aspectjWeaving | back to summary |
|---|---|
| public EnableLoadTimeWeaving. Whether AspectJ weaving should be enabled. | |
| Modifier and Type | Field and Description |
|---|---|
| public static final EnableLoadTimeWeaving. | AUTODETECT
Switches on AspectJ load-time weaving if a "META-INF/aop.xml" resource is present in the classpath. |
| public static final EnableLoadTimeWeaving. | DISABLED
Switches off Spring-based AspectJ load-time weaving (even if a "META-INF/aop.xml" resource is present on the classpath). |
| public static final EnableLoadTimeWeaving. | ENABLED
Switches on Spring-based AspectJ load-time weaving. |
| Access | Constructor and Description |
|---|---|
| private |
| Modifier and Type | Method and Description |
|---|---|
| public static EnableLoadTimeWeaving. | |
| public static EnableLoadTimeWeaving. |
| AUTODETECT | back to summary |
|---|---|
| public static final EnableLoadTimeWeaving. Switches on AspectJ load-time weaving if a "META-INF/aop.xml" resource is present in the classpath. If there is no such resource, then AspectJ load-time weaving will be switched off. | |
| DISABLED | back to summary |
|---|---|
| public static final EnableLoadTimeWeaving. Switches off Spring-based AspectJ load-time weaving (even if a "META-INF/aop.xml" resource is present on the classpath). | |
| ENABLED | back to summary |
|---|---|
| public static final EnableLoadTimeWeaving. Switches on Spring-based AspectJ load-time weaving. | |
| AspectJWeaving | back to summary |
|---|---|
| private AspectJWeaving() | |
| valueOf | back to summary |
|---|---|
| public static EnableLoadTimeWeaving. | |
| values | back to summary |
|---|---|
| public static EnableLoadTimeWeaving. | |