一 点睛
1 APT简介
APT(annotation processing tool)是一种处理注释的工具,它对源代码文件进行检测找出其中的Annotation后,对Annotation进行额外的处理。
Annotation处理器在处理Annotation时可以根据源文件中的Annotation生成额外的源文件和其它的文件(文件具体内容由Annotation处理器的编写者决定),APT还会编译生成的源代码文件和原来的源文件,将它们一起生成class文件。
2 用户开发自定义APT
为了使用系统的APT工具来读取源文件中的Annotation,程序员必须自定义一个Annotation处理器,编写Annotation处理器需要使用JDK lib目录中的tools.jar里的如下4个包:
-
com.sun.mirror.apt:和APT交互的接口。
-
com.sun.mirror.declaration:包含各种封装类成员、类方法、类声明的接口。
-
com.sun.mirror.type:包含各种封装源代码中程序元素的接口。
-
com.sun.mirror.util:提供了用于处理类型和声明的一些工具。
二 实战——自定义Hibernate的APT
1 Persistent定义关于表的注解
import java.lang.annotation.*;
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.SOURCE)
@Documented
public @interface Persistent
{
String table();
}
2 Id定义关于表id的注解
import java.lang.annotation.*;
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.SOURCE)
@Documented
public @interface Id
{
String column();
String type();
String generator();
}
3 Property定义关于表的属性注解
import java.lang.annotation.*;
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.SOURCE)
@Documented
public @interface P