这是我参与11月更文挑战的第11天,活动详情查看:2021最后一次更文挑战
吃饱饭才有力气写代码~
前言
今天也是怀疑人生的一天,先是一个增加配置的需求,到现在也没理解这个配置的作用,代码和效果联系不上。然后是做这个记录页面访问信息的需求,也还不知道怎么实现,今天先简单捋一下~
思路
要实现的是记录用户访问系统的相关信息,主要是用户登录的时间,用户的id;系统是嵌在一个框架里的,整个应用首页上给我们的系统留了一个入口,点击入口进入到我们的系统,把这个算作一次登录;进入我们的系统首页初始化时会调用很多接口,选择其中一个每次初始化必须用到的接口,根据它的调用情况作为访问的依据,就是如果调用这个接口了,就可以记录当前使用者的信息。
实现
看大家都是使用AOP切面获取方法调用次数,使用注解的方式,在对应的controller上添加对应的注解,这样每次调用方法就会执行相应的操作(写入redis);
之后按时对redis里的数据做持久化处理;现在想的是用hash类型做数据处理,userId作为key;登录次数做累加处理;每次先查有没有对应的key,没有就新增,有就设置其中的次数;
1.put(H key, HK hashKey, HV value) void 新增hashMap值。
2.values(H key) List 获取指定变量中的hashMap值。
3.entries(H key) Map<HK, HV> 获取变量中的键值对。
4.get(H key, Object hashKey) HV 获取变量中的指定map键是否有值,如果存在该map键则获取值,没有则返回null。
5.hasKey(H key, Object hashKey) Boolean 判断变量中是否有指定的map键。
总结
aop切面还没用过,这可能是一个难点;redis也没实际操作过,到时候应该会花点时间;持久化也没上手操作过。。。见的越多越发觉自己的无知和浅薄!等实现完再分享中间踩过的坑~