spring获取连接点参数的两种方法
来源:互联网 发布:linux安全加固手册 编辑:程序博客网 时间:2024/06/01 10:22
在一个系统中,我们希望在用户在登录的前后记录日志,并将用户的登录信息(登录参数)记录到日志中。我们可以用spring aop来实现这个功能。在本文将会展示两种spring aop获取参数的方法。
1 首先新建个LoginController,有一个login方法
@RequestMapping("login")public String login(String name,String password){System.out.println("登录中...");return "login";}2 新建一个切面类,在新建切点的时候可以通过args来绑定参数具体代码如下,另外一种获取参数的方式是 在@Around 中通过ProceedingJoinPoint 来获取参数
@Aspect@Component //注意点1:必须将这个切面类注册为bean,可以在这里通过@Component 注入,也可以自己在xml中注入public class LogAspect {@Pointcut("execution(* com.zsq.cn.login.controller.LoginController.login(String,String)) "+ "&& args(name,password)") //注意点2:args的参数必须与连接点方法的参数一样public void login(String name,String password){}@Before("login(name,password)")public void beforeLogin(String name,String password){System.out.println("登陆之前,用户名:"+name+",密码"+password);}@After("login(name,password)")public void afterLogin(String name,String password){System.out.println("登陆之后(无论成功还是失败),用户名:"+name+",密码:"+password);}@AfterReturning("login(name,password)")public void afterLoginReturn(String name,String password){System.out.println("登陆成功之后,用户名:"+name+",密码"+password);}@AfterThrowing(value="login(name,password)",throwing="e")public void afterLoginThrow(String name,String password,Exception e){System.out.println("登陆失败之后,失败信息:"+e.getMessage());}@Around("login(name,password)") //注意点3:下面方法必须将ProceedingJoinPoint point参数放到第一个位置 否则启动报错public Object aroundLogin(ProceedingJoinPoint point,String name,String password) throws Throwable{System.out.println("通过ProceedingJoinPoint获取参数数组"+Arrays.toString(point.getArgs()));return point.proceed();}}上面的代码有三个注意的地方,我已经在代码中标注出来了。
阅读全文
0 0
- spring获取连接点参数的两种方法
- ashx获取两种参数的方法
- 菜鸟学习Spring——60s利用JoinPoint(连接点)获取参数的值和方法名称()
- 【Jquery】jQuery获取URL参数的两种方法
- javascript 获取当前 URL 参数的两种方法:
- javascript 获取当前 URL 参数的两种方法:
- 获取网络连接名称“本地连接”的两种方法
- spring框架下获取Bean的两种常用方法
- spring框架下获取Bean的两种常用方法
- Spring获取bean工厂的两种方法
- 获取SQL连接参数的好方法
- Spring MVC 的请求参数获取的几种方法
- Spring MVC 的请求参数获取的几种方法
- Spring MVC 的请求参数获取的几种方法
- Spring MVC 的请求参数获取的几种方法
- Spring MVC 的请求参数获取的几种方法
- SPRING MVC 的请求参数获取的几种方法
- Spring MVC 的请求参数获取的几种方法
- poj 1269 Intersecting Lines(判断两条直线三种状态)
- 实现路由,表格展示,猜数,行程
- python之GUI图形界面
- Python 序列化 保存变量的值
- Linux 操作学习
- spring获取连接点参数的两种方法
- C++的构造函数为什么不能是虚函数
- 查看系统版本
- 改变某行颜色
- offset, client, scroll
- 深入分析类与对象--构造方法与匿名对象
- layerlist添加阴影效果
- 购物车.
- 解析JSON数据的方法