使用guava过期map】的更多相关文章

最近需要将微信的accesstoken保存到缓存里面,防止重复请求微信接口获取token,造成token请求次数超标,其实随便一个缓存都可以轻松解决,但是现有的环境中没有redis,没有memcahe,做一个这个小功能,不需要引入这些框架,就用guava的过期map就可以了,不要要是服务宕机了,可又要重新获取了,这个...不再考虑范围内了. 依赖包: <dependency> <groupId>com.google.guava</groupId> <artifac…
List<TeamScheduleDTO> list = JSON.parseArray(response.getData().getJSONArray("list").toJSONString(), TeamScheduleDTO.class); // guava写法 /* Map<String, List<TeamScheduleDTO>> allMap = Multimaps.asMap(Multimaps.index(list1, new F…
在做 Web Application 时,因为 Web Project 有 session 自动失效的问题,所以如何让用户登录一次系统就能长时间运行三个月,就是个问题. 后来,看到 session 失效的拦截器代码,就猜想能否通过拦截器来实现. 查资料发现可行:用户登录时将帐号密码存入cookie,cookie可以存储1年至更久,当session失效被拦截时,在拦截器内读取cookie 中的用户名和密码后再登录.(登录过程隐藏对用户不可见). 在实践过程中遇到个问题: 在拦截器内重新实现登录过程…
前言 该文主要带你了解什么是 JWT,以及JWT 定义和先关概念的介绍,并通过简单Demo 带你了解如何使用 SpringBoot 2 整合 JWT. 介绍前在这里我们来探讨一下如何学习一门新的技术,我个人总结为 RSA. R:read 去读官方文档 . S:search 谷歌或百度先关技术文章或 github 去搜索先关信息. A:ask 可以向技术大牛请教或和自己的同事同学进行探讨. 关于 RSA 仅仅代码个人的学习观点,只是给读者一个不成熟的小建议哈 JWT 介绍 官网介绍如下: What…
拦截器判断 拦截器截取到请求先进行判断,如果是OPTIONS请求的话,则放行 import com.alibaba.fastjson.JSON; import com.zp.demo.util.JwtHelperUtil; import org.apache.commons.lang.StringUtils; import org.apache.shiro.SecurityUtils; import org.apache.shiro.authc.AuthenticationException;…
前言 本篇文章不是一篇具体的教程,我打算记录一下自己对Redis的一些思考.说来惭愧,我刚接触Redis的时候只是简单地使用了一下,背了一些面试题,就在简历上写下了Redis这个技能点. 我们能在网络上轻易地找到关于Redis具体知识点的讲解,但很少有文字说明为什么会有这项技术,我希望通过本文总结一下个人目前对Redis的理解. 1. 初识Redis 最开始的时候,我是通过网络上面的一些项目教程了解到Redis的,当时教程里说把首页数据放到Redis里,能够加快首页数据的访问速度,于是我就照做了…
这篇是SpringBoot整合消息队列的第一篇文章,我们详细介绍下消息队列的相关内容. 消息队列简介 1. 什么是消息队列 MQ(Message Quene):通过典型的生产者和消费者模型,生产者不断向消息队列中产生消息,消费者不断的从队列中获取消息.因为生产者和消费者都是异步的,而且生产者只关心消息的发送,消费者只关心消息的接收,没有业务逻辑的侵入,轻松实现业务解耦. 2. 消息队列有什么用 异步处理 场景描述:某商场具有注册功能,注册的时候需要发送短信验证码. 传统的做法是用户提交信息到用户…
前言 本篇博客已被收录GitHub:https://zhouwenxing.github.io/ 文中所涉及的源码也已被收录GitHub:https://github.com/zhouwenxing/lonely-wolf-note (message-queue模块) 使用消息队列必须要保证生产者发送的消息能被消费者所接收,那么生产者如何接收消息呢?下图是 RabbitMQ 的工作模型: 上图中生产者会将消息发送到交换机 Exchange 上,再由 Exchange 发送给不同的 Queue ,…
前言 在 jdk 的 juc 工具包中,提供了一种延迟队列 DelayQueue.延迟队列用处非常广泛,比如我们最常见的场景就是在网购或者外卖平台中发起一个订单,如果不付款,一般 15 分钟后就会被关闭,这个直接用定时任务是不好实现的,因为每个用户下单的时间并不确定,所以这时候就需要用到延迟队列. 什么是延迟队列 延迟队列本身也是队列,只不过这个队列是延迟的,意思就是说当我们把一条消息放入延迟队列,消息并不会立刻出队,而是会在到达指定时间之后(或者说过了指定时间)才会出队,从而被消费者消费. 利…
Rabbit 高级操作 1.过期时间TTL 过期时间TTL表示可以对消息设置预期的时间,在这个时间内都可以被消费者接收获取:过了时间之后消息将自动被删除. RabbitMQ可以对消息和队列设置TTL.目前有两种方法可以设置. 第一种方法是通过队列属性设置,队列中所有消息都有相同的过期时间. 第二种方法是对消息进行单独设置,每条消息TTL可以不同. 如果上述两种方法同时使用,则消息的过期时间以两者之间TTL较小的那个数值为准.消息在队列的生存时间一旦超过设置的TTL值,就称为dead messag…