我可以从AspectJ中带有注释@Before的方法返回吗?

@Before
public void simpleAdvice(JoinPoin joinPoint) {
    if (smth == null)
    /* return for method, which annotated */
}


如果我的问题还没有完全解决,请再问我一个细节。

最佳答案

您可以使用@Before@After@AfterReturning@AfterThrowing@Around定义方法。但是您的班级可以在@Aspect中注册。

另外,您需要定义pointcutjoinpoints

例如,

@Before(value="execution(* com.pointel.aop.AopTest.beforeAspect(..))")
public void beforeAdvicing(JoinPoint joinPoint){

    String name = joinPoint.getSignature().getName();
    System.out.println("Name of the method : "+name);

}

@AfterReturning(value="execution(* com.pointel.aop.AopTest.beforeAspect(..))")
public void beforeAdvicing(JoinPoint joinPoint,Object result){

    String name = joinPoint.getSignature().getName();
    System.out.println("Name of the method : "+name);
    System.out.println("Method returned value is : " + result);

}


您的Java类将是

package com.pointel.aop;

public class AopTest {

    public String beforeAspect( ) {
        return "I am a AopTest";
    }
}


就是这样,希望能有所帮助。

10-04 18:14