2010-04-08 62 views
1

有没有办法使用注释用于运行函数之前当前调用的函数,是这样的:如何在使用注释的当前函数之前运行函数?

public void doSomethingEarlier() { 
} 

@DoSomethingEarlier 
public void doSomething() { 
} 

所以我想打电话给doSomethin()函数,并执行该功能之前我想自动运行doSomethingEarlier()函数。

回答

2

你有多种方式,这是一个有点难以实现:

  • 使用Proxy在那里你可以解析的目标方法的注释和调用一个方法具有相同的名称
  • 使用AOP

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

@BeforeMethod("methodName") 

一般来说,这是AOP如何在低级别上工作的。

+0

你必须定义注释并编写代理代码,不是吗? – bmargulies 2010-04-08 20:44:15

+0

是(15个字符)。 – Bozho 2010-04-08 20:48:59

0

请参阅Spring Aspect Oriented Programming。

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

0

是的,你可以使用注解。您必须创建自己的@DoSomethingEarlier注释(具有运行时保留),并且必须为自己的注释处理器处理器编码。这不是一个简单的命题,你可能想看看像AOP或动态代理其他替代品(这可能不是容易的事。)

0

这种情况很容易...

public void doSomethingEarlier() { 
} 

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