当前位置: 首页 > news >正文

石家庄网站建设登录织梦网站模板源码php

石家庄网站建设登录,织梦网站模板源码php,网页微信登录,wordpress模板仿在开发过程中#xff0c;很多时候我们会使用ThreadLocal来临时缓存数据#xff0c;当一次数据请求执行完成后需要主动执行释放当前ThreadLocal缓存数据资源#xff0c;防止未能及时释放导致下一次访问时候ThreadLocal依然保持上一次缓存的数据。 spring提供两种方式去监听一…在开发过程中很多时候我们会使用ThreadLocal来临时缓存数据当一次数据请求执行完成后需要主动执行释放当前ThreadLocal缓存数据资源防止未能及时释放导致下一次访问时候ThreadLocal依然保持上一次缓存的数据。 spring提供两种方式去监听一次请求完成事件。 1、HandlerInterceptor - afterCompletion 使用拦截方式再执行完成后执行afterCompletion 2、ApplicationListener - ServletRequestHandledEvent ApplicationListener 提供的是监听那种事件类型ServletRequestHandledEvent 就是一次请求结束后的事件。 通过上述两种方式可以很方便的在一次请求完成移除当前线程ThreadLocal。 ThreadLocal 工具 public class ThreadLocal2UserSessionUtil {private static final ThreadLocalObject LOCAL new ThreadLocal();/*** 设置数据** param paramMap*/public static void set(MapString, Object paramMap) {LOCAL.set(paramMap);}/*** 获取值** return*/public static MapString, Object get() {if (Objects.isNull(LOCAL.get())) {return new HashMap();} else {return (MapString, Object) LOCAL.get();}}/*** 获取值** return*/public static Object get(String key) {MapString, Object resMap (MapString, Object) LOCAL.get();if (null resMap) {return null;}return (null ! resMap.get(key)) ? resMap.get(key) : null;}/*** 每次取出数据后必须清空 否则就会出现值重复*/public static void remove() {LOCAL.remove();}/*** 获取app登录token** return*/public static String getToken4App() {MapString, Object map get();return (null map) ? : (String) map.get(EncryptReqParamNameConstant.PARAM_TOKEN);}/*** 初始化数值** return*/public static void pushUserToken4App(String appToken) {MapString, Object localMap get();if (StringUtil.isNotBlank(appToken)) {localMap.put(EncryptReqParamNameConstant.PARAM_TOKEN, appToken);set(localMap);}}/*** 初始化数值** return*/public static void pushUserId4App(Long userId) {MapString, Object localMap get();if (null ! userId) {localMap.put(EncryptReqParamNameConstant.USER_ID, userId);set(localMap);}}/*** 初始化数值 注意这里只有加解密才将用户id放入** return*/public static Long getUserId4App() {MapString, Object map get();return (null map) ? null : (Long) map.get(EncryptReqParamNameConstant.USER_ID);} }HandlerInterceptor 方式 Slf4j Component public class ThreadLocalRemoveInterceptor implements HandlerInterceptor {Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {HandlerInterceptor.super.afterCompletion(request, response, handler, ex);ThreadLocal2UserSessionUtil.remove();} }在web控制器中加入监听器 Configuration public class PathPrefixMvcConfigurer implements WebMvcConfigurer {Autowiredprivate ThreadLocalRemoveInterceptor threadLocalRemoveInterceptor;Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(threadLocalRemoveInterceptor).addPathPatterns(/*);} }2、通过监听器方式 Slf4j Component public class ServletRequestHandledEventListener implements ApplicationListenerServletRequestHandledEvent {Overridepublic void onApplicationEvent(ServletRequestHandledEvent event) {ThreadLocal2UserSessionUtil.remove();} }完成
http://www.hkea.cn/news/14522091/

相关文章:

  • 宁波专业网站定制制作服务qq轻聊版
  • 温州网站建设大全无锡百度正规公司
  • 网站设计制作费用同城做推广哪个网站好
  • 襄樊最好网站建设价格深圳手机网站建设价格
  • 花都营销型网站建设公司wordpress分类的id
  • 做网站的开题报告怎么写建设银行官方网站登录
  • 网站建设的难点网络营销与电子商务的区别
  • 山东建设厅执业资格注册中心网站好大夫网站开发单位
  • 做网站去哪找如何做企业网站建设
  • 网站开发 源代码2014网站设计
  • 苏州网站的优化找人做jsp网站
  • php网站建设实例黑龙江跃众品牌策划公司
  • 做旅游网站选什么空间怎样创建快捷方式
  • 站点传统的推广方式主要有什么公司网站建设做的好
  • 网站设计制作用软件中英文企业网站制作
  • 大气的门户网站深圳网站制作必选祥奔科技
  • 网站设计培训基地福州建设网站的公司
  • 大作业做网站泰安网上房地产
  • 做cms网站步骤手机软件开发
  • 南京网站建设网络营销证书有什么用
  • 解决网站兼容性问题安陆市网站
  • 织梦网站怎样入侵嘉兴做微网站多少钱
  • 一手货源怎么找宁波网站的优化
  • 全国哪个餐饮品牌的网站做的好处天津企业网站设计报价
  • 深圳办公室出租seo手机优化方法
  • 主流网站开发阜阳市城乡建设 档案馆网站
  • 临沂网站建设选盛誉o2o网站 方案
  • 网站开发的著作权和版权建设网站的申请信用卡
  • 专业商城网站设计网站策划师有前途吗
  • 自学商城网站建设制作微信小程序公司