【发布时间】:2016-09-22 07:40:15
【问题描述】:
我正在尝试实现一个看起来像这样的自定义注释:
public class Foo{
@CustomAnnotation(classname="com.somepackage.ExternalClass", methodname="method1", invokation="before")
public void bar(){
//method body..
}
}
注解中指定的方法应该在实际方法被调用之前被调用。 请建议如何实现这一目标。
【问题讨论】:
-
IMO 你在这里做的事情没有多大意义。您正在尝试重新实现可以通过 AOP 更轻松地完成的事情。但是如果你使用 AOP,你为什么要用关于如何应用横切关注点的信息来污染你的主应用程序代码呢?一个干净的解决方案是将这些信息完全外部化到方面本身并摆脱反射魔法。如果您想看一个简单的 AspectJ 示例,请告诉我。
标签: java annotations aop aspectj interceptor