AspectJ:向类添加静态初始化程序

时间:2011-11-08 16:30:29

标签: java initialization aspectj

我的一些Java类具有标记有特殊注释@Assert的静态方法,包含完整性检查。

我想在任何代码实际执行之前执行这些检查。最好的方法是从<clinit>调用这些方法。如何使用AspectJ获得类似的行为,而不修改初始代码?

2 个答案:

答案 0 :(得分:2)

AspectJ提供了一个staticinitialization(TypePattern)切入点定义,它将选择现有的静态初始值设定项并拦截它们。但是,似乎无法将静态初始值设定项添加到没有它们的类中。

答案 1 :(得分:1)

只是为了补充John的答案; staticInitialization切入点不需要任何static块,在这种情况下,它充当简单的类加载连接点。

现在是时候调用使用@Assert注释的方法。