您的位置:首页 > 编程语言 > Java开发

spring AOP切面编程-环绕

2016-08-16 16:31 369 查看
maven添加依赖

<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>1.8.9</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.8.9</version>
</dependency>


@Aspect
@Component
public class ControllerAspect {

private static Logger logger = Logger.getLogger(ControllerAspect.class);

@Pointcut("execution(* com.security.admin.controller..*.*(..))")
private void controllerMethod() {

}

/**
* 可以在执行方法之前和之后改变参数和返回值
* @param joinPoint用于获取目标方法相关信息的参数
* @return 最终的返回值
* @throws Throwable
*/
@Around("controllerMethod()")
public Object processTx(ProceedingJoinPoint joinPoint) throws Throwable {

System.out.println("Around增强:执行方法之前,模拟开始事物");

Signature signature = joinPoint.getSignature();
MethodSignature methodSignature = (MethodSignature) signature;
Object rvt = joinPoint.proceed();
String response = (String) (methodSignature.getReturnType().newInstance());

System.out.println("Around增强:执行方法之后,模拟结束事物");

logger.info("----------------" + response);
return rvt;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: