在Spring中有两种方式实现AOP,一种方式是Annotation,另外一种方式就是XML的方式。在Spring中,本身有自己的一套实现动态代理的机制(AOP的核心就是动态代理),但是其自己本身的机制在开发中一般很少使用,使用的最多的就是使用AspectJ框架。(AspectJ是专门用来实现动态代理的框架)。
Annotation方式通过以下基本来实现:
第一步:在项目的classpath中加入AspecJ的相关JAR包,包括aspectjweaver.jar 和aspectrt.jar(经过自己测试,还需要加入aopalliance.jar和cglib的相关包)。这是在spring中使用aspectj的核心jar包。
第二步:配置spring的配置文件,首先在XML文件中加入AOP的命名空间等信息。然后加入<aop:aspectj-autoproxy/>,这个表示可以使用aspectj注解的方法来使用spring的AOP,它会扫描包中的类,若一个类需要代理,则为其产生一个代理。代码如下:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="