0.AspectJ简介
在上篇文章【Spring——AOP(1)之Spring1中的配置】中,简要介绍了AOP(Aspect-Oriented Programming,面向切面编程)的概念,并介绍了AOP中的一些术语,最后通过使用Spring1中编写切面、配置切面的方式讲解了一个案例。本节我们介绍AspectJ框架,学习AspectJ框架是因为Spring2以后的AOP开发中引入了很多AspectJ的概念和配置方式。
AspectJ是Eclipse基金组织的开源项目,它是Java语言的一个AOP实现,是最早、功能比较强大的AOP实现之一,对整套AOP机制都有较好的实现,很多其他语言的AOP实现也借鉴或者采纳了AspectJ中的很多设计。在Java领域,AspectJ中的很多语法结构基本上已经成为AOP领域的标准。
要知道的是,AspectJ框架和Spring框架实现AOP的方式是不一样的,AspectJ是在编译时进行增强,所以它有一个专门的编译器来生成遵守Java字节码编码规范的Class文件。而Spring采用的是动态代理的方式,它并不需要有一个专门的编译器。故也称AspectJ为静态AOP实现,而Spring AOP为动态AOP实现。
AspectJ主要包含两个部分:第一个部分定义了如何表达、定义AOP编程中的语法规范;第二个部分是工具部分,包括编译器、调试工具等。
1.安装AspectJ
安装AspectJ首先要到AspectJ官网下载一个可执行的Jar包,然后双击该Jar包即可打开进行安装。
多次点击Next
按钮、并选择合适的安装目录,即可成功安装AspectJ。
在安装了AspectJ之后,在其安装目录下,可以看到如下的文件结构:
├─bin // 该路径下存放了 aj