spring

Spring, Aspects, @Configurable and Compile Time Weaving using maven

Why do most people use Load Time Weaving (LTW)? It requires replacing the javaagent/classloader of your JVM which can lead to all sorts of issues.

Let's take a look at getting Compile Time Weaving (CTW) instead.

This post is using spring 2.5.2, aspectj 1.5.4, java 1.5. (Spring 2.5.4 uses a later version of weaver (3.0 vs. 5.0) - I assume AspectJ 1.6.0 but the aspectj-maven-plugin is also based around 1.5.4 - so for now we'll stick with this combination.)


Compile Time Weaving of spring aspects in Intellij Idea

To enable compile time weaving of the spring aspects (spring-aspects.jar) in Intellij IDEA (I am using 7.0.3 - but I assume this to be similar for other versions):

  1. Install and enable the AspectJ plugin (http://intellij.expertsystems.se/aspectj.html) - it was available in the plugin manager lists by default
  2. Under Settings > AspectJ Weaver, search for aspects - add the spring-aspects jar and enable weaving
  3. In the build menu - make sure AspectJ weaving is enabled

spring-ldap and NoClassDefFoundError com.sun.jndi.ldap.ctl.ResponseControlFactory

When using spring-ldap - if you get a NoClassDefFoundError for com.sun.jndi.ldap.ctl.ResponseControlFactory then you need the ldap booster pack (currently 1.0).

Spring AOP and maven dependencies (<aop:spring-configured/>)

Or - why does it say my spring context xml is invalid on <aop:spring-configured/>

Syndicate content