缓存微信接口凭据access_token:初步认识ServletContext
来源:互联网 发布:mac终端获取文件路径 编辑:程序博客网 时间:2024/06/07 22:42
本人一直从事微信公众号的开发,最近遇到这么一个问题:在调用微信的各个接口的时候,需要在调用接口的时刻向微信服务器传送acces_token参数,access_token是微信公众号接口的调用凭据,access_token本身也是通过调用微信的接口得到的,但access_token的获取频率是有限制的,每天只能获取2000次,每次有效时间为120分钟,在微信开发者文档上说明如下:
那么,我们就需要将access_token缓存下来。若要将access_token缓存下来,以供全局使用,本人一下想到的是两个方法:1.使用redis、memcached等第三方工具缓存。2.使用application缓存。先说说第一种方法,第一种方法是使用第三方插件实现的,如果项目中已经搭好了插件,直接使用即可,但由于我这个项目在时间上有压力,而且更重要的一点是,我的项目先前并未使用任何缓存插件,缓存都是session级别的,而且除了access_token,没有别的全局变量,所以如果仅仅为了access_token而搭建整个缓存插件,从时间上、项目的轻量性上显得特别的不划算,所以我把目光转移到了application上了。现在来详细说说application。首先贴出代码:
WebApplicationContext webApplicationContext = ContextLoader.getCurrentWebApplicationContext();
ServletContext application = webApplicationContext.getServletContext();
从以上代码看出,application是从ServletContext实例化而来,那么我们就需要了解一下ServletContext的特性。首先看看ServletContet的API文档:
ServletContext是一个全局的储存信息的空间,这意味着它在整个应用中是共享的,它的生命周期存在于服务器启动直至服务器关闭,项目运行期间,也就是它的生命周期期间。
从以上的分析可以得知,ServletContext满足这次我缓存access_token的需求,所以这次就决定用它了!
首先是实例化ServletContext:
WebApplicationContext webApplicationContext = ContextLoader.getCurrentWebApplicationContext(); ServletContext application = webApplicationContext.getServletContext();
然后调用微信的接口,获取access_token,在得到access_token之后,只需要调用ServletContext的setAttribute方法缓存access_token:
application.setAttribute("accessToken", accessToken);
需要取出access_token的时候,只需调用ServletContext的getAttribute方法即可,就像调用session的方法一样,是不是很方便?
小项目在不适用redis、memcached等工具的情况下,ServletContext是一个不错的用于缓存全局变量的选择!
- 缓存微信接口凭据access_token:初步认识ServletContext
- PHP微信公众平台开:获取接口调用凭据access_token、订阅事件推、消息回复
- 微信开发笔记之缓存access_token
- 微信开发 access_token 缓存方法
- 微信access_token全局存储与缓存
- 获取微信接口调用凭据AccessToken
- 获取微信基础接口凭证Access_token
- 获取微信基础接口凭证Access_token
- 利用SAE的Memcache缓存微信的access_token
- 微信&java 开发6 全局缓存access_token与jsapi_ticket
- 微信开发二 获取接口调用凭据
- 微信调用接口,防止Access_token过期的方法
- 微信公众号接口访问凭证access_token获取机制
- 微信接口调用凭证access_token的管理
- 微信获取用户信息的两个接口和两个ACCESS_TOKEN
- 微信获取用户信息的两个接口和两个ACCESS_TOKEN
- 微信企业号开发之access_token接口调用示例
- 微信的全局接口使用凭证access_token和网页授权临时access_token
- T1
- 游戏中的设计模式五(策略模式)
- 多继承代码解析
- flask+ highcharts实现报表转换成趋势图(2)
- 通过dbcp连接池连接数据库的操作
- 缓存微信接口凭据access_token:初步认识ServletContext
- Spring AOP中pointcut expression表达式解析及匹配多个条件
- 一、Ubuntu U盘系统安装以及初步设置
- 数据结构之二分查找树
- 2017.9.10-9.12
- 反射机制
- Linux 字体颜色设置
- 如何用指针遍历图像中的每一个像素
- MT6580 Video Feature Introduction