spring获取连接点参数的两种方法
2017-09-21 10:39
260 查看
在一个系统中,我们希望在用户在登录的前后记录日志,并将用户的登录信息(登录参数)记录到日志中。我们可以用spring aop来实现这个功能。在本文将会展示两种spring aop获取参数的方法。
1 首先新建个LoginController,有一个login方法
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(); } }上面的代码有三个注意的地方,我已经在代码中标注出来了。
相关文章推荐
- spring获取连接点参数的两种方法
- spring获取连接点参数的两种方法
- spring获取连接点参数的两种方法
- Spring3 MVC请求参数获取的几种方法小结
- Spring中的AOP——在Advice方法中获取目标方法的参数
- Spring3 MVC请求参数获取的几种方法
- Spring中的AOP——在Advice方法中获取目标方法的参数
- Spring3 MVC请求参数获取的几种方法[转]
- Spring中的AOP 在Advice方法中获取目标方法的参数(顶)
- jquery获取URL中参数解决中文乱码问题的两种方法
- JAVA获取方法参数名-Spring
- js获取地址栏参数的两种方法
- Spring 获取方法参数名
- 获取网页URL地址及参数等的两种方法(js和C#)
- Spring3 MVC请求参数获取的几种方法
- spring请求参数获取的几种方法
- ajax传递多个参数的两种方法和label标签中获取值
- 获取网页URL地址及参数等的两种方法(js和C#)
- 自己试验在spring的环绕通知里获取目标对象的类名和目标方法的参数类名,用于根据自定义注解判断访问权限,有没有更好的办法,高手指点一下
- 关于EL表达式获取参数的两种方法