Eclipse AspectJ
Eclipse AspectJ(以下简称AspectJ)是一个对java语言的,无缝的面向切面的扩展。跟java平台是兼容的易于学习和使用的一个组件。AspectJ主要由Pivotal公司贡献代码AspectJ compiler 支持jdk1.4以后的版本,eclipse安装插件:AJDT:http://www.eclipse.org/ajdt/-----------未完待续
AspectJ在Spring中的使用
在上一篇AspectJ的入门中,简单的介绍了下AspectJ的使用,主要是以AspectJ的example作为例子。介绍完后也留下了几个问题:1)我们在spring中并没有看到需要aspectj之类的关键词,而是使用java代码就可以了,这是如何做到的2)Spring中如何做到不使用特殊的编译器实现aop的(AspectJ如何在运行期使用)3)Spring源码中与aspectJ 相关的AjType究竟是啥?这篇文章会继续试着解决这几个问题。aspectJ的几种织入方式compile-time、post-compile 和 load-time Weavers首先了解下AspectJ的几种织入方式,分别是compile-time、post-compile 和 load-time,分别对应着编译期、后编译期、加载期织入编译期织入首先是编译期织入,上一篇博客所介绍的方式就是使用的编译期织入。很容易理解,普通的java源码 + aspectJ特殊语法的‘配置’ 文件 + aspectJ特殊的编译器,编译时候生成已织入
Spring 中基于 AOP 的 @AspectJ
Spring 中基于 AOP 的 @AspectJ@AspectJ 作为通过 Java 5 注释注释的普通的 Java 类,它指的是声明 aspects 的一种风格。通过在你的基于架构的 XML 配置文件中包含以下元素,@AspectJ 支持是可用的。<aop:aspectj-autoproxy/>你还需要在你的应用程序的 CLASSPATH 中使用以下 AspectJ 库文件。这些库文件在一个 AspectJ 装置的 ‘lib’ 目录中是可用的,如果没有,你可以在 Internet 中下载它们。aspectjrt.jaraspectjweaver.jaraspectj.jaraopalliance.jar 声明一个 aspectAspects 类和其他任何正常的 bean 一样,除了它们将会用 @AspectJ 注释之外,它和其他类一样可能有方法和字段,如下所示:package org.xyz; import org.aspectj.lang.annotation.Aspect; @Aspec
Spring使用AspectJ开发AOP
使用 AspectJ 开发 AOP 通常有两种方式:基于 XML 的声明式。基于 Annotation 的声明式。接下来将对这两种 AOP 的开发方式进行讲解。基于XML的声明式基于 XML 的声明式是指通过 Spring 配置文件的方式定义切面、切入点及声明通知,而所有的切面和通知都必须定义在 <aop:config> 元素中。下面通过案例演示 Spring 中如何使用基于 XML 的声明式实现 AOP 的开发。1. 导入 JAR 包使用 AspectJ 除了需要导入 Spring AOP 的 JAR 包以外,还需要导入与 AspectJ 相关的 JAR 包,具体如下。spring-aspects-3.2.13.RELEASE.jar:Spring 为 AspectJ 提供的实现,在 Spring 的包中已经提供。com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar:是 AspectJ 提供的规范,可以在官方网址 https://repo.