Spring的AOP,AOP如何获得切入点的返回值

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/天,具体规则查看活动详情Blog Img