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

网页设计与制作怎么答辩优化大师使用方法

网页设计与制作怎么答辩,优化大师使用方法,做竞价的网站还用做seo,linux系统用wordpress在开发过程中,很多时候我们会使用ThreadLocal来临时缓存数据,当一次数据请求执行完成后需要主动执行释放当前ThreadLocal缓存数据资源,防止未能及时释放导致下一次访问时候ThreadLocal依然保持上一次缓存的数据。 spring提供两种方式去监听一…

在开发过程中,很多时候我们会使用ThreadLocal来临时缓存数据,当一次数据请求执行完成后需要主动执行释放当前ThreadLocal缓存数据资源,防止未能及时释放导致下一次访问时候ThreadLocal依然保持上一次缓存的数据。

spring提供两种方式去监听一次请求完成事件。
1、HandlerInterceptor -> afterCompletion 使用拦截方式,再执行完成后执行afterCompletion
2、ApplicationListener -> ServletRequestHandledEvent ,ApplicationListener 提供的是监听那种事件类型,ServletRequestHandledEvent 就是一次请求结束后的事件。

通过上述两种方式可以很方便的在一次请求完成移除当前线程ThreadLocal。

ThreadLocal 工具

public class ThreadLocal2UserSessionUtil {private static final ThreadLocal<Object> LOCAL = new ThreadLocal<>();/*** 设置数据** @param paramMap*/public static void set(Map<String, Object> paramMap) {LOCAL.set(paramMap);}/*** 获取值** @return*/public static Map<String, Object> get() {if (Objects.isNull(LOCAL.get())) {return new HashMap<>();} else {return (Map<String, Object>) LOCAL.get();}}/*** 获取值** @return*/public static Object get(String key) {Map<String, Object> resMap = (Map<String, 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() {Map<String, Object> map = get();return (null == map) ? "" : (String) map.get(EncryptReqParamNameConstant.PARAM_TOKEN);}/*** 初始化数值** @return*/public static void pushUserToken4App(String appToken) {Map<String, Object> localMap = get();if (StringUtil.isNotBlank(appToken)) {localMap.put(EncryptReqParamNameConstant.PARAM_TOKEN, appToken);set(localMap);}}/*** 初始化数值** @return*/public static void pushUserId4App(Long userId) {Map<String, Object> localMap = get();if (null != userId) {localMap.put(EncryptReqParamNameConstant.USER_ID, userId);set(localMap);}}/*** 初始化数值  注意这里只有加解密才将用户id放入** @return*/public static Long getUserId4App() {Map<String, 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 ApplicationListener<ServletRequestHandledEvent> {@Overridepublic void onApplicationEvent(ServletRequestHandledEvent event) {ThreadLocal2UserSessionUtil.remove();}
}

完成

http://www.15wanjia.com/news/43882.html

相关文章:

  • 如何查看网站是否降权上海专业的seo公司
  • 苏州网站建设专业的公司排名点击工具
  • 厦门网站公司中国seo关键词优化工具
  • 自己怎样建立个人网站百度seo指南
  • 筑久建筑工程有限公司seo整站优化方案案例
  • 程序员创业做网站做公众号2345网址导航主页
  • 淘宝网站制作教程seo自动优化软件下载
  • 网站移动页面怎么做国内seo做最好的公司
  • 陕西网站开发公司地址爱站seo
  • 网站效果图怎么做百度贴吧广告投放价格
  • 街头小吃加盟网站建设企业官方网站有哪些
  • 广告牌设计seo关键词是什么
  • 网站建设中...海外市场推广做什么的
  • 网站建设用什么系统好网站推广优化方式
  • 做购物网站用什么应用网站关键词优化方案
  • 网站建设方案详解百度小程序入口
  • 网站做支付宝接口搜狗网址大全
  • 做服装行业网站企业seo网站推广
  • 免费网站为何收录比较慢网站如何进行优化
  • 做网站的公司杭州免费b站在线观看人数在哪里找到
  • 在外国做玄幻小说网站营销型网站建设需要多少钱
  • 龙岗在线网站建设北京seo营销公司
  • 石家庄最好的网站建设公司排名深圳百度seo优化
  • 工业设计的就业前景和就业方向seo网站推广助理招聘
  • 做猎头顾问 经常看哪些网站seo排名优化技术
  • 58同城网站招聘怎么做网络销售培训
  • 广告设计需要什么软件seo外包资讯
  • wordpress 电影moban湖南seo优化推荐
  • 做网站好还是网页好长沙网站seo哪家公司好
  • 学校网站备案怎么做seo技术快速网站排名