如何使用注释在当前函数之前运行函数?

时间:2010-04-08 20:36:49

标签: java annotations

在当前调用的函数之前,有没有办法使用注释来运行函数,如下所示:

public void doSomethingEarlier() {
}

@DoSomethingEarlier
public void doSomething() {
}

所以我想调用doSomethin()函数,在执行这个函数之前我想自动运行doSomethingEarlier()函数。

4 个答案:

答案 0 :(得分:2)

您有多种方法,实施起来有点困难:

  • 使用Proxy,您可以在其中解析目标方法上的注释并调用具有相同名称的方法
  • 使用AOP

第一种方法更直接。注释看起来可能更好:

@BeforeMethod("methodName")

一般来说,这就是AOP在低级别上的工作方式。

答案 1 :(得分:0)

参见Spring Aspect Oriented Programming。

Java不会为你做这件事。别人:您或某个库:必须查看注释并调整调用过程。

答案 2 :(得分:0)

是的,你可以使用注释。您必须创建自己的@DoSomethingEarlier注释(具有运行时保留),并且必须编写自己的注释处理器处理器。这不是一个简单的命题,您可能希望寻找其他替代方案,如AOP或动态代理(这可能也不容易。)

答案 3 :(得分:0)

这更容易......

public void doSomethingEarlier() {
}

public void doSomething() {
    doSomethingEarlier();
}
相关问题