@Around注解
上篇简述了AspectJ支持@Before、@After、@AfterReturning和@AfterThrowing及其执行过程,本模块来阐述其支持的另一种注解:@Around注解。
该注释修饰的方法可以灵活调整目标方法的执行时机;通过@Around注解还可以实现@Before,@After,@AfterReturning和@AfterThrowing增强效果。
下面将按照图中方式进行实现:
代码如下:
@Around("pointcut()")
public Object around(ProceedingJoinPoint jp){
try{
String name = jp.getSignature().getName();
Object result = null;
try {
Object [] args = jp.getArgs();
System.out.println("The "+name+" method begins");
System.out.println("The parameters of the "+name+" method are "+args[0]+","+args[1]);
result = jp.proceed();
}finally {
System.out.println("The "+name+" method ends");
}
System.out.println("The "+name+" method result:"+result);
return result;