昨天刚刚侍弄完 Spring 下基于自定义注解拦截方法调用,如今试下纯 AspectJ 的方式来打造,由于不是每个项目都是 Spring。此次要推到 5 年前试验过用 javac 命令行编译的方式织入方面,见 AspectJ 基于自定义的方法注解来拦截方法,此次着重在用 aspectj-maven-plugin 插件的方法来织入 AspectJ 方面。html
基本上代码仍是昨天的,需求仍是同样的:java
被 @LogStartTime 注解的方法在进入该方法时记录当前时间在 ThreadLocal 中,并能根据 @LogStartTime 的属性值决定处理逻辑spring
由于 Java5+ 以后 AspectJ 能够写成 Java 类加注解的方式,*.aj 文件通常都没太大必要了,因此能够和 Spring AOP 共用一个 @Aspect 注解的方面代码 MethodStartAspect
。maven
咱们将采用编译器织入,所以项目依赖只须要一个 org.aspectj:aspectjrt:1.8.0
, 它也不会引入别的组件。一样咱们从 Main 方法和测试用例两方面来验证明现的效果,下面是整个测试项目的布局,以及依赖,除掉单元测试的其时就只须要一个 jar 包。 阅读全文 >>布局