一些关于SpringAOP的理解

        刚做完记录登录操作的AOP,进一步理解了AOP技术,下面简单写一点记录一下

        AOP的入参就是方法的一种虚拟形态,在使用joinpoint的方法时其实就是获得关于方法的一些信息

        关于joinpoint:joinpoint提供了一些方法:

        proceed() --- 运行方法,会获得方法的返回值,默认为Object类,在明确返回值时可以强转

        getTarget().getClass().getName() --- 获取目标类名

        getSignature().getName() --- 获取目标方法名

        getArgs() --- 获取目标方法运行参数,也就是传入的参数,传入的参数会被装进一个Object数组,在使用时可以用数组的方法


        在登陆系统中,接收数据的对象是emp,此时,用getArgs()获取对象的数组中只会有一个传入过来的emp对象,但由于getArgs()会把内容都转换为Object类,所以在使用时需要强转一次转回emp,这时就可以用emp的方法获取输入进来的username和password

        对于是否成功,在Result类里有一个参数Code记录了.由于login方法会向前端返回result,所以在用完proceed()方法后接受的参数也可以强转为Result类,这样在记录是否成功时就可以调用Result里的getCode()获得数字1或0

        对于获得Token,登陆成功时,返回的result里的data里带着logInfo,所以可以将data强转为logInfo从而使用getToken()获得Token.登陆失败时,由于返回的是null值,所以不能用getData方法,此时需要一个if判断

        在组装好组装好EmpLoginLog后,就可以调用mapper方法将数据记入数据库了


        在做完后,我觉得AOP是看着方法,通过这个方法获取一些值,比如类名,方法名,入参.这样的好处是不需要修改原本的代码就可以对方法进行管理和记录日志,这里的登陆方法就可以归于记录日志中


        关于这次实践,我仍有一些疑惑

        1.为什么在定义切入点时返回值不能是自定义的类

        2.在获得Token时,貌似不需要判断也可以直接使用同样的语句,但我不判断服务器就会报错,因为无法getData

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值