
上QQ阅读APP看书,第一时间看更新
4.5 基于注解开发AspectJ
基于注解开发AspectJ要比基于XML配置开发AspectJ便捷许多,所以在实际开发中推荐使用注解方式。对于注解的相关内容,读者在3.5.2节已经接触,本节介绍AspectJ注解,如表4.3所示。
表4.3 AspectJ注解

下面通过一个实例讲解基于注解开发AspectJ的过程,具体步骤如下:
① 创建切面类,并进行注解
在ch4应用的src目录下创建aspectj.annotation包,在该包中创建切面类MyAspect。在该类中首先使用@Aspect注解定义一个切面类,由于该类在Spring中是作为组件使用的,所以还需要使用@Component注解;然后使用@Pointcut注解切入点表达式,并通过定义方法来表示切入点名称;最后在每个通知方法上添加相应的注解,并将切入点名称作为参数传递给需要执行增强的通知方法。
MyAspect的代码如下:



② 注解目标类
使用注解@Repository将目标类dynamic.jdk.TestDaoImpl注解为目标对象,注解代码如下:

③ 创建配置文件
在aspectj.annotation包中创建配置文件applicationContext.xml,并在配置文件中指定需要扫描的包,使注解生效,同时需要启动基于注解的AspectJ支持。
applicationContext.xml的代码如下:

④ 创建测试类
测试类的运行结果与图4.4相同,这里不再赘述。