Spring AOP
1. 在pom.xml文件里面添加依赖
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.3.9.RELEASE</version>
</dependency>
<!--
Spring AOP的实现依托于Aspect框架(AOP框架)
所以要引用1.8.5有问题 -->
<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>
2. 创建一个切面类
以为这个类属于一个业务,需要添加@Service
这个业务需要在运行的过程中添加一些扩展业务,添加注解@Aspect
2.1 在这个类里面方法前添加环绕通知,以及切入点
@Pointcut("需要切入点的bean对象")
@Around
这两个注解可以合在一块写
@Around("需要切入的bean对象")
例如:
/**
* 切入点的定义(借助@Pointcut注解进行描述)
*/
@Pointcut("bean(sysUserServiceImpl)")
public void doPointCut(){}
/**
* @Around修饰的方法为一个环绕的通知
* 可以在目标方法执行之前和之后添加扩展业务
* @param jp 连接点(封装了要执行的具体方法对象信息)
* @return
*/
@Around("doPointCut()")
//@Around("bean(sysUserServiceImpl)")
public Object aroundMethod(ProceedingJoinPoint jp)
2.2 在@Around修饰的方法里面描述目标方法执行前和执行后添加扩展业务
// result 为目标方法返回值
Object result = jp.proceed();//这个方法用来执行切入点的目标方法
2.3 将数组转化成Json串
String params=new ObjectMapper().//jackson
writeValueAsString(jp.getArgs());
使用writeValuesAsString的方法就可以把对角转化成json字符串。