访问通知中的注释值

mar*_*tin 2 aop spring annotations

在我的应用程序中,我有这样注释的方法:

@SomeAnnotation(key1="value1", key2 ="value2")
public void myMethod()
Run Code Online (Sandbox Code Playgroud)

我定义了以下apsect来对这些方法的执行执行一些操作:

@Aspect
public class MyAspect()
{
    @Around("@annotation(my.package.SomeAnnotation)")
    public Object doSomething(final ProceedingJoinPoint pjp) throws Throwable
    {
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,我想在我的建议中使用注释值(在上面的示例中为“ value1”和“ value2”)。此时访问注释的方式是什么?

axt*_*avt 5

@annotation 可以绑定形式使用,如下所示:

@Around(value = "@annotation(a)", argNames = "a")
public Object doSomething(final ProceedingJoinPoint pjp, SomeAnnotation a)
    throws Throwable { ... }
Run Code Online (Sandbox Code Playgroud)