在实践中使用什么策略进行注释扫描?

时间:2013-05-17 04:20:34

标签: java spring reflection annotations bytecode

我知道下面提到的可以检测和使用注释的方法:

  1. 注释处理器(编译时代码生成)
  2. 运行时注释扫描(例如ASM和其他字节码扫描库)
  3. 自定义类加载器,反映对其加载的类的注释
  4. 在运行时使用反射API
  5. 注意:我不确定是否使用过方法(3)

    我正在寻找有关在什么样的场景中使用哪种注释处理技术的信息。想到的一些例子是:

    1. 部署时间(例如,Java EE容器如何知道在部署WAR时是否正确应用了注释)
    2. 编译时间(例如Apache Beehive Pageflows在编译期间使用注释处理器生成大量XML文件)
    3. 运行时(例如,Spring在您指定的类路径上执行字节码注释扫描)

1 个答案:

答案 0 :(得分:2)

4被依赖注入框架大量使用,例如HK2Guice

3实际上用于任何你关心类的静态成员的依赖注入/初始化的地方,比如用PowerMock来知道它是否需要处理类。