Aop切面编程APT方式

Aop切面编程APT方式

APT (Annotation Processing Tool )即注解处理器
简单来说就是在编译期,通过注解生成 .java 文件。使用的 Annotation 类型是 SOURCE。

代表框架:DataBinding、Dagger2、ButterKnife、EventBus3、DBFlow、AndroidAnnotation

利用javapoet开源库编译的时候生成代码文件

是用于生成Java源文件的Java API。
https://github.com/square/javapoet

Gradle引用库

1
compile 'com.squareup:javapoet:1.11.1'

使用例子

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//方法
MethodSpec main = MethodSpec.methodBuilder("main")//定义方面名
.addModifiers(Modifier.PUBLIC, Modifier.STATIC)//定义修饰符
.returns(void.class)//定义返回类型
.addParameter(String[].class, "args")//添加方法参数
.addStatement("$T.out.println($S)", System.class, "Hello, JavaPoet!")//添加方法内容
.build();
//类
TypeSpec helloWorld = TypeSpec.classBuilder("HelloWorld")//构造一个类,类名
.addModifiers(Modifier.PUBLIC, Modifier.FINAL)//定义类的修饰符
.addMethod(main)//添加类的方法,也就是上面生成的MethodSpec对象
.build();
//生成源码文件
JavaFile javaFile = JavaFile.builder("com.example.helloworld", helloWorld)
.build();

javaFile.writeTo(System.out);