我想要做的是创建一个自定义注释以在服务上使用它,并且每次从那里调用方法时首先执行一些操作。例如:
@CustomAnnotation
public Class MyService{
public void myMethod(){
//do something
}
}
当调用myMethod时,在执行代码之前先执行某些操作,然后执行它必须执行的操作。 有没有办法做到这一点?我需要使用注释来做,使用接口或继承是没用的,因为每个方法都有用,而不仅仅是一个。
我知道如何扫描包以获取注释类,但我不知道如何在应用程序运行时在运行时检查它。
谢谢!
答案 0 :(得分:0)
似乎您可以通过使用AOP(面向方面编程)来实现您所需要的。
我发布了代码示例here。它在带注释的方法之前执行一些代码,而不为其他方法执行。
AOP允许您在不干预包含方法的类的代码的情况下执行此操作,您可以在不更改方法本身及其调用代码的情况下更改方法行为。您甚至可以使用此技术跳过方法执行(使用@Around建议)。例如,在允许方法执行之前需要进行安全检查时,它非常有用。