1、定义 环绕类型的AOP配置文件
<!--该类配置为环绕配置 可以获取 被切面函数参数 被切面函数返回值 以及可以改变 被切面函数的返回值-->
<bean id="testAroundAop" class="com.intcache.god.rpcAop.TestAop"></bean>
<aop:config>
<!-- 定义切点 -->
<aop:pointcut id="aroundPointcutTarget"
expression="execution(* com.intcache.god.controllers.DevController.doAddDevice(..))"/>
<!-- 定义切面 -->
<aop:aspect id="userAspect" ref="testAroundAop">
<!--通知函数 method 的参数为 ProceedingJoinPoint 类型 该类型为 JoinPoint 的子类 可以通过该对象获取 被切面参数 以及 返回值-->
<aop:around method="aroundMethod" pointcut-ref="aroundPointcutTarget"/>
</aop:aspect>
</aop:config>
2、定义 通知bean
package com.intcache.god.rpcAop;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.ProceedingJoinPoint;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.Map;
/**
* Created by CachePro on 2016/7/14.
*/
public class TestAop {
/**
* 环绕通知 【即 被切函数执行前后执行该函数】
* @param pjp
* @return
* @throws Throwable
*/
public Object aroundMethod(ProceedingJoinPoint pjp) throws Throwable {
Object[] args = pjp.getArgs(); // 获取被切函数 参数
Object object = pjp.proceed(); //获取被切函数的 返回值
Map<String, Object> resultMap = new HashMap<String, Object>();
resultMap.put("result", "-4");
object = resultMap; //修改被切函数的返回值
HttpServletRequest request = (HttpServletRequest) args[0];
System.out.println(request.getParameter("name"));
System.out.println("Log.......");
return object;
}
}
<!--该类配置为环绕配置 可以获取 被切面函数参数 被切面函数返回值 以及可以改变 被切面函数的返回值-->
<bean id="testAroundAop" class="com.intcache.god.rpcAop.TestAop"></bean>
<aop:config>
<!-- 定义切点 -->
<aop:pointcut id="aroundPointcutTarget"
expression="execution(* com.intcache.god.controllers.DevController.doAddDevice(..))"/>
<!-- 定义切面 -->
<aop:aspect id="userAspect" ref="testAroundAop">
<!--通知函数 method 的参数为 ProceedingJoinPoint 类型 该类型为 JoinPoint 的子类 可以通过该对象获取 被切面参数 以及 返回值-->
<aop:around method="aroundMethod" pointcut-ref="aroundPointcutTarget"/>
</aop:aspect>
</aop:config>
2、定义 通知bean
package com.intcache.god.rpcAop;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.ProceedingJoinPoint;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.Map;
/**
* Created by CachePro on 2016/7/14.
*/
public class TestAop {
/**
* 环绕通知 【即 被切函数执行前后执行该函数】
* @param pjp
* @return
* @throws Throwable
*/
public Object aroundMethod(ProceedingJoinPoint pjp) throws Throwable {
Object[] args = pjp.getArgs(); // 获取被切函数 参数
Object object = pjp.proceed(); //获取被切函数的 返回值
Map<String, Object> resultMap = new HashMap<String, Object>();
resultMap.put("result", "-4");
object = resultMap; //修改被切函数的返回值
HttpServletRequest request = (HttpServletRequest) args[0];
System.out.println(request.getParameter("name"));
System.out.println("Log.......");
return object;
}
}