Aspect-oriented programming is a way of thinking about tasks as attributes of a process ("this task needs transactions, so transactionality is an attribute of the task that's added as an aspect"). Spring 3.0 AOP is explained well in this post.

It shows context configuration as well as explaining the concepts behind AOP, annotation-configured pointcuts (a pointcut is "the point at which functionality is inserted") and what the pointcuts can be (around a method, after an exception, all kinds of things).

The test code is a little painful - it's executable main() instead of a test case. But people like different things, I guess.

Altogether a handy summary of AOP in Spring, even though it doesn't go much into the philosophy of how to leverage AOP - but I guess the concepts behind AOP aren't worth much if you can't use any of them.