AspectJ in Action: Enterprise AOP with Spring Applications