java在实践中,注释扫描使用了哪些策略?
我知道以下提到的检测和使用注释的方法:
- 注释处理器(编译时代码生成)
- 运行时注释扫描(例如ASM和其他字节码扫描库)
- 自定义类加载器,反映它们加载的类上的注释
- 在运行时使用反射API
注:我不确定是否使用过方法(3)
我想了解在什么样的场景中使用了什么样的注释处理技术。我想到的几个例子是:
- 部署时间(例如,当部署WAR时,Java EE容器如何知道注释是否正确应用)
- 编译时(例如,Apache Beehive Pageflows在编译时使用注释处理器生成大量XML文件)
- 运行时(例如Spring在您指定的类路径上进行字节码注释扫描)
# 1 楼答案
4被依赖注入框架大量使用,例如
HK2
和Guice
实际上,3在任何关心类的静态成员上的依赖注入/初始化的地方都可以使用,例如使用
PowerMock
来了解它是否需要处理类