Spring的AOP如何传值
以前我使用AOP传值,就是从切入点方法传值给AOP类(@Aspect),是用的session来处理
然后今天我使用session传值居然失败了,然后和之前的写法并没有什么不同
于是就去翻阅了资料,发现可以这样获得传值
如下代码,首先是我们的切入点方法,切入点的返回值就是我们一会需要得到的传值
public String addCookie(int userid,String username,int shopid,int shopnumber,HttpServletRequest request,HttpSession session,HttpServletResponse response) { String cartcookie = String.valueOf(userid)+","+username+","+String.valueOf(shopid)+","+String.valueOf(shopnumber); return cartcookie; }然后在我们的Aspect类中做如下定义和切入
@AfterReturning(pointcut="execution(* springMVC.NLoveB.service.iter.advice.SerCookieIter.addCookie(..))",returning="returnValue") public void CartLog(JoinPoint point, Object returnValue) { System.out.println("添加购物车,将这些信息添加进数据库"+returnValue); } }这样,当我们执行完这个addCookie方法,再执行这个aop的时候,就可以获得这个切入方法的返回值。是不是很简单
而参数JoinPoint point
他的作用就是可以获得我们这个切入方法里面的属性
String operType = point.getSignature().getName(); 获得切入点的方法名
String entity = point.getTarget().getClass().getName(); 获得切入点的类名
Object obj[] = point.getArgs(); 这里我这里测试的是对返回组转换成了数组
for (Object o : obj) { System.out.println(o); }
爆款云服务器s6 2核4G 低至0.46/天,具体规则查看活动详情