我可以从AspectJ中带有注释@Before的方法返回吗?
@Before
public void simpleAdvice(JoinPoin joinPoint) {
if (smth == null)
/* return for method, which annotated */
}
如果我的问题还没有完全解决,请再问我一个细节。
最佳答案
您可以使用@Before
,@After
,@AfterReturning
,@AfterThrowing
,@Around
定义方法。但是您的班级可以在@Aspect
中注册。
另外,您需要定义pointcut
和joinpoints
。
例如,
@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";
}
}
就是这样,希望能有所帮助。