Using Aspect-oriented programming (AOP) for Spring framework has for a long time. I usually intercepted with logging,
transaction and security. And now I am working a project with EJB3 interceptors, I feel it’s easy for developer to use annotation with AOP. So I compile those AOP imeplemetation in practice.

Evolution of software programming methodology:
At this article, I want my AOP!, author explained the need for AOP. Object-oriented programming (OOP) let us view a system as a set of collaborating objects. Classes allow us to hide implementation details beneath interfaces. Polymorphism provided a common behavior and interface for related concepts, and allowed more specialized components to change a particular behavior without needing access to the implementation of base concepts.
Indeed, OOP has shown its strength when it comes to modeling common behavior. However, as we will see shortly, and as you may have already experienced, OOP does not adequately address behaviors that span over many — often unrelated — modules. In contrast, AOP methodology fills this void.

EJB 3 Interceptors:
Bill Burke: Webcast
JBoss EJB3 Interceptors

JBoss AOP:
Aspect-Oriented Annotations
Second-generation aspect-oriented programming
JBoss AOP service

Spring AOP:
An Introduction to Aspect-Oriented Programming with the Spring Framework,

Anti AOP pattern:
EJB 3 and AOP: the EJB interceptor dilemna