2012-08-30 97 views
0

的Java大师,定义注解的时间戳方法

我为annotations非常新,所以请多多包涵......

我想实现一个Custom Annotation这将intercept方法调用,只是打印该方法所花费的时间。可能吗?

@EnableElapsedTime 
public MyAppObject findMyAppObjectById(Long id) throws MyCustomException { 
    //.... 
} 

应打印像这样在日志中:

findMyAppObjectById() took 2.345 sec. 

我能得到一些解决这个提示?

+1

答案是否定的,是的。你不能仅仅使用注释来做到这一点,但你可以使用注释和方面来做到这一点。 (如果你使用Spring,这会变得更容易)。我知道这不是一个完整的回应,但希望你能够指引正确的方向:)。用于Java的 – Augusto

回答

2

注释本身不能做到这一点。您需要调查一种称为“面向方面编程”(或AOP)的技术。

+0

,请查看AspectJ或Spring –

1

Perf4J与@Profiled注释做同样的事情,并提供了许多其他不显眼的分析选项。