我知道下面提到的可以检测和使用注释的方法:
- 注释处理器(编译时代码生成)
- 运行时注解扫描(例如 ASM 和其他字节码扫描库)
- 自定义类加载器,反映它们加载的类的注释
- 在运行时使用反射 API
注意:我不确定是否使用过方法(3)
我正在寻找有关在哪种情况下使用哪些注释处理技术的信息。想到的几个例子是:
- 部署时间(例如,当您部署 WAR 时,Java EE 容器如何知道注释是否正确应用)
- 编译时(例如 Apache Beehive Pageflows 在编译时使用注释处理器生成大量 XML 文件)
- 运行时(例如 Spring 对您指定的类路径进行字节码注释扫描)