FastAop 是一款基于 Java Annotation Processing 的 AOP 框架,其原理和 Lombok 类似,通过对编译过程的拦截,修改方法的语法树并织入切面代码从而实现了 AOP 的功能,相较于传统的 AspectJ 、Spring-AOP 框架有如下特点:
- 依赖干净,无需 Spring 等环境
- 使用简单,仅需两个注解就能实现切面功能
- 性能好,由于是编译过程中植入原生代码,所以性能几乎无损
- 功能强大,支持 private 、static 等各种方法切面,内部方法相互调用也会过切面逻辑
- 扩展性好,提供了特定注解,能够在方法内部拿到当前切面上下文,便于做一些临时操作
项目由来
在写一些二方库的时候,有时候会有 aop 需求,但是又不想引入 AspectJ 或者 Spring 这种重量级的框架,那么 FastAop 就是你的另一个选择,原理和 Lombok 一样在编译的时候修改语法树注入的切面代码,目前已用在了生产环境,当然可以基于这个库可以生成任何你想要的模板代码,欢迎大家一起交流~
评论