实现AOP的两种选择:AspectJ,Spring AOP
Spring AOP:
Spring缺省使用J2SE 动态代理(dynamic proxies)来作为AOP的代理。 这样任何接口(或者接口集)都可以被代理。
Spring也可以使用CGLIB代理. 对于需要代理类而不是代理接口的时候CGLIB代理是很有必要的。如果一个业务对象并没有实现一个接口,默认就会使用CGLIB。但也可以强制使用CGLIB
Spring AOP开发时,可使用AspectJ的注解,这个时候并没有使用AspectJ,而仅仅是Spring AOP支持了AspectJ的注解而已。