描述一下我借鉴海涛大佬的思想
1.先写一个类,定义一个全局变量HashMap,然后为key-value提供get,set方法
2.写一个类实现CommandLineRunner接口(伴随Springboot启动时初始化资源),将接口名和接口描述来存放到之前定义的类中。
3.写一个切面类,用来匹配所有请求方法,将用户,操作(方法的描述),时间写入到数据库中。
PS: requestMappingHandlerMapping 对象可以获取所有处理器方法
然后通过每个方法的注解内容来获取接口描述
这个注解你可以自定义,若你正好使用Swagger正好可以利用Swagger的注解,这样也是一举两得。(自定义注解的简单实现我之前文章有)
废话不多说,上实例
自定义InterfaceMapCache类
初始化接口资源(实现CommandLineRunner)
利用aop实现操作记录
为什么不再方法前,或方法后执行?
就是因为无论执行成功失败与否,都会执行(归根结底不可获取返回结果动态判断是否执行成功)
完
获取user信息解决方案:
1,登陆时存放到session,从Session中获取当前用户信息
2,前端每次请求时将用户id存放到header中,后端取出即可,取出方法