首页 > 其他分享 >1.20

1.20

时间:2024-03-01 13:45:21浏览次数:17  
标签:ThreadLocalUtil ThreadLocal static import 1.20 com public

一.今天做了什么
利用多线程优化代码
package com.di.bigevent.interceptors;

import com.di.bigevent.utils.JwtUtil;
import com.di.bigevent.utils.ThreadLocalUtil;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;

import java.util.Map;

@Component
public class LoginInterceptor implements HandlerInterceptor {

@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
    //令牌验证
    String token = request.getHeader("Authorization");

    try{
        Map<String,Object> claims = JwtUtil.parseToken(token);

        //把业务数据存放到ThreadLocal中
        ThreadLocalUtil.set(claims);
        //放行
        return true;
    }
    catch(Exception e){
        response.setStatus(401);
        //不放行
        return false;
    }
}

@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
    //清空ThreadLocal中的数据
    ThreadLocalUtil.remove();
}

}
package com.di.bigevent.utils;

/**

  • ThreadLocal 工具类
    */
    @SuppressWarnings("all")
    public class ThreadLocalUtil {
    //提供ThreadLocal对象,
    private static final ThreadLocal THREAD_LOCAL = new ThreadLocal();

    //根据键获取值
    public static T get(){
    return (T) THREAD_LOCAL.get();
    }

    //存储键值对
    public static void set(Object value){
    THREAD_LOCAL.set(value);
    }

    //清除ThreadLocal 防止内存泄漏
    public static void remove(){
    THREAD_LOCAL.remove();
    }
    }

标签:ThreadLocalUtil,ThreadLocal,static,import,1.20,com,public
From: https://www.cnblogs.com/Christmas77/p/18046824

相关文章

  • 1.20
    差旅费报销管理信息系统(50分)  1、项目背景:随着企业规模的扩大和业务的复杂化,报销管理成为了企业日常运营中不可或缺的一环。为了提高效率和减少人力成本,许多企业开始引入报销系统来简化和优化报销流程。为了避免人力物力财力浪费、降低办公成本、提高办事效率,是企业领导关注......
  • 1.20
    这篇阅读笔记是有关于邹欣教授的《构建之法:现代软件工程》的阅读笔记。其实最开始阅读这本书的的原因也只是因为老师的作业要求。最开始老师给我们做推荐的时候其实在文件上只有《构建之法》四个字。所以开始我一直以为这本书是一本偏向于有关于项目构建的的书。但是我在网络上去......
  • 1.20
    使用JavaScript表达式迄今为止,在我们的模板中,我们一直都只绑定简单的property键值。但实际上,对于所有的数据绑定,Vue.js都提供了完全的JavaScript表达式支持。<template><view><view>{{number+1}}</view><view>{{ok?'YES':'NO'}}</view>......
  • 算法模板 v1.6.1.20240131
    算法模板v1.1.1.20240115:之前的历史版本已经不可寻,创建了第一份算法模板。v1.2.1.20240116:删除“编译”-“手动开栈”与“编译”-“手动开O优化”;将“编译”-“CF模板”中的第20行代码cin>>T;注释;删除“读写”及其目录下的内容;删除“图论”-“欧拉图”-“混合图”;删除“图论”-......
  • 算法模板 v1.5.1.20240130
    算法模板v1.1.1.20240115:之前的历史版本已经不可寻,创建了第一份算法模板。v1.2.1.20240116:删除“编译”-“手动开栈”与“编译”-“手动开O优化”;将“编译”-“CF模板”中的第20行代码cin>>T;注释;删除“读写”及其目录下的内容;删除“图论”-“欧拉图”-“混合图”;删除“图论”-......
  • 算法模板 v1.4.1.20240128
    算法模板v1.1.1.20240115:之前的历史版本已经不可寻,创建了第一份算法模板。v1.2.1.20240116:删除“编译”-“手动开栈”与“编译”-“手动开O优化”;将“编译”-“CF模板”中的第20行代码cin>>T;注释;删除“读写”及其目录下的内容;删除“图论”-“欧拉图”-“混合图”;删除“图论”-......
  • 1.20闲话
    推歌:葬歌/洛天依byilem听凭风引(指\(\textbf{K8He}\)),我打算板刷\(\textbf{ABC}\)的\(\text{ABCD}\)题从ABC的333开始刷啦\(\textbf{ABC333}\)\(\text{Problem:A}\)$here$题意输出\(n\)个\(n\)思路按照题意模拟即可代码没有人曾体会#include<bits/st......
  • 闲话1.20
    系统维护,该内容暂不可见。找lbx帮忙写了个这玩意,很好玩啊......
  • 1.20寒假每日总结11
    学习执行计划。简单的解释为:explainquery;一个简单的例子为:explainselectsum(id)fromtest1;该语句的执行计划为:STAGEDEPENDENCIES:Stage-1isarootstageStage-0dependsonstages:Stage-1STAGEPLANS:Stage:Stage-1MapReduceMap......
  • 2024.1.20
    1.异常(1)检查性异常:最具代表性的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。例如要打开一个不存在的文件时,一个异常就发生了,这些异常不能被简单地忽略。(2)运行时异常:运行时异常时可能被程序员避免的异常。与检查性异常相反,运行时异常可以在编译时被忽略。(3......