返回顶部
首页 > 资讯 > 后端开发 > Python >Java使用ThreadLocal实现当前登录信息的存取功能
  • 464
分享到

Java使用ThreadLocal实现当前登录信息的存取功能

Python 官方文档:入门教程 => 点击学习

摘要

目录一、使用ThreadLocal实现当前登录信息的存取1,写一个工具类用于存取用户id2、在用户登录的时候我们在过滤器中可以获取用户的id,这个时候我们将用户id放入ThreadL

一、使用ThreadLocal实现当前登录信息的存取

项目中我们增加一个员工有一些信息是需要我们自己填入的,有一些信息不需要我们自己填写,例如:创建时间,创建人等,那么这些事件我们通常就是使用实体类然后set相关属性,但是我们可以使用MetaObjectHandler来将这些不要要我们自己穿的参数进行默认填充,但是创建人和更新人是获取的当前用户登录人。

我们都知道想要获取当前的登录人就需要使用httpservletRequest来获取,但是我们字符串填充类没有这个,那么我们就可以使用ThreadLocal来实现当前登录信息的存取。

ThreadLocal的实现原理就是,一个线程里面有局部变量,我们可以利用局部变量来存取数据,当然我们必须保证是同一个线程这样才能准确的存储和获取数据,在我们一个请求流程下来我们都使用的一个线程,所以这里我们就可以使用ThreadLocal来进行信息的存取。

1,写一个工具类用于存取用户id


public class BaseContext {
    private static ThreadLocal<Long> threadLocal = new ThreadLocal<>();

    public static void setCurrentId(Long id){
        threadLocal.set(id);
    }

    public static Long getCurrentId(){
        return threadLocal.get();
    }
}

2、在用户登录的时候我们在过滤器中可以获取用户的id,这个时候我们将用户id放入ThreadLocal中。

  //4、判断登录状态,如果已登录,则直接放行
        if(request.getSession().getAttribute("employee") != null){
            log.info("用户已登录,用户id为:{}",request.getSession().getAttribute("employee"));

            Long empId =  (Long) request.getSession().getAttribute("employee");
            BaseContext.setCurrentId(empId);

            filterChain.doFilter(request,response);
            return;
        }

然后在需要用到用户id的地方进行读取:

 @Override
    public void insertFill(MetaObject metaObject) {
        log.info("公共字段自动填充[insert]...");
        log.info(metaObject.toString());
        metaObject.setValue("createTime", LocalDateTime.now());
        metaObject.setValue("updateTime",LocalDateTime.now());
        metaObject.setValue("createUser",BaseContext.getCurrentId());
        metaObject.setValue("updateUser",BaseContext.getCurrentId());
    }

在上面的方法写完成后,我们直接运行程序,然后新增和修改员工就会进入这些方法然后进行字段填充操作。

二、总结

这里的相关内容还没有整理完毕,文章后面持续更新,建议收藏。

文章中涉及到的命令大家一定要像我一样每个都敲几遍,只有在敲的过程中才能发现自己对命令是否真正的掌握了。

到此这篇关于Java使用ThreadLocal实现当前登录信息的存取功能的文章就介绍到这了,更多相关Java ThreadLocal当前登录信息的存取内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Java使用ThreadLocal实现当前登录信息的存取功能

本文链接: https://lsjlt.com/news/196993.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Java使用ThreadLocal实现当前登录信息的存取功能
    目录一、使用ThreadLocal实现当前登录信息的存取1,写一个工具类用于存取用户id2、在用户登录的时候我们在过滤器中可以获取用户的id,这个时候我们将用户id放入ThreadL...
    99+
    2023-02-21
    threadlocal存放登录用户 threadlocal保存用户登录信息 threadlocal 用户信息
  • Java怎么使用ThreadLocal实现当前登录信息的存取功能
    本篇内容主要讲解“Java怎么使用ThreadLocal实现当前登录信息的存取功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java怎么使用ThreadLocal实现当前登录信息的存取功能”...
    99+
    2023-07-05
  • 详解.NET6如何实现获取当前登录用户信息
    目录需求目标原理和思路实现创建当前用户获取接口实现接口功能使用功能验证总结需求 在前面的文章里使用.NET 6开发TodoList应用之领域实体创建原理和思路,我们留了一个...
    99+
    2024-04-02
  • Vue前端登录token信息验证功能实现
    用户在首次访问网站时,应在登录页面填写账号密码,前端携带用户信息向服务器请求。 1、服务器验证用户信息 验证失败:给前端响应数据 验证通过:对该用户创建token,并以响应数据返回给...
    99+
    2022-12-27
    Vue token验证 Vue前端token验证
  • 利用C#实现获取当前设备硬件信息
    目录需求描述确定当前程序运行在那种平台上ManagementObjectSearcher类获取硬件信息示例代码需求描述 现在有这样一个需求: 我有A、B两台服务器,其中A是一个视频处...
    99+
    2023-03-23
    C#获取设备硬件信息 C#获取硬件信息 C# 设备信息
  • 详解SpringSecurity中获取当前登录用户的详细信息的几种方法
    目录在Bean中获取用户信息在Controller中获取用户信息通过 Interface 获取用户信息在JSP页面中获取用户信息在Bean中获取用户信息 Authentication...
    99+
    2024-04-02
  • 怎么用C#实现获取当前设备硬件信息
    这篇文章主要介绍“怎么用C#实现获取当前设备硬件信息”,在日常操作中,相信很多人在怎么用C#实现获取当前设备硬件信息问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用C#实现获取当前设备硬件信息”的疑惑有所...
    99+
    2023-07-05
  • Java Web实现用户登录功能
    文章目录 一、纯JSP方式实现用户登录功能(一)实现思路1、创建Web项目2、创建登录页面3、创建登录处理页面4、创建登录成功页面5、创建登录失败页面6、编辑项目首页 (三)测试结果 ...
    99+
    2023-10-02
    java 前端 servlet
  • Java 使用 oshi 获取当前服务硬件信息(操作系统、CPU、内存、磁盘)
    一、导包 这里需要引入两个依赖包: com.github.oshioshi-core6.3.0 org.projectlombok lombok 1.18.24 二、工具类 Hard...
    99+
    2023-10-26
    java oshi 服务器信息
  • java如何实现短信验证码登录功能
    小编给大家分享一下java如何实现短信验证码登录功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!业务案例如下所示,是一个大家熟知的采用短信登录的入口输入手机号之...
    99+
    2023-06-25
  • 如何使用PHP实现微信扫码登录功能
    随着移动互联网的快速发展,微信作为一种重要的社交工具,已经逐渐成为人们日常生活中必不可少的一个部分。在许多网站和应用程序中,微信登录功能已经成为了一种趋势,因为它可以让用户直接使用已有的微信账号来登录,不需要再创建新的账户,同时也能提供更便...
    99+
    2023-05-14
    微信扫码登录 php
  • 怎么使用PHP实现微信扫码登录功能
    这篇文章主要讲解了“怎么使用PHP实现微信扫码登录功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用PHP实现微信扫码登录功能”吧!一、准备工作在开始实现微信扫码登录功能之前,我们需...
    99+
    2023-07-05
  • java短信验证码登录功能设计与实现
    目录前言业务案例业务关键点剖析短信验证码功能实现思路有效期问题操作步骤前言 现在不管是各类的网站,还是大小社交app,登录方式是越来越多了,其中基于短信验证码的登录可以说是各类app...
    99+
    2024-04-02
  • 【微信授权登录】uniapp开发小程序,实现获取微信授权登录功能
    一、解题思路: 微信授权登录(获取用户信息) 1.先获取用户信息——用户授权允许后,通过调用uni.login 可以获取到code。 2.拿着获取到的code去调用——登录接口,可以获取到token。 3.把token存入缓存。就可以在页面...
    99+
    2023-08-16
    小程序 微信 javascript
  • 微信小程序实现授权登录之获取用户信息
    本文实例为大家分享了微信小程序实现获取用户信息的具体代码,供大家参考,具体内容如下 小程序登录 小程序可以通过微信官方提供的登录能力方便地获取微信提供的用户身份标识,快速建立小程序内...
    99+
    2024-04-02
  • SpringMVC使用注解实现登录功能
    本文实例为大家分享了SpringMVC使用注解实现登录的具体代码,供大家参考,具体内容如下 一、使用Component\Controller\Service\Repository四大...
    99+
    2024-04-02
  • 怎么使用phpajson实现登录功能
    今天小编给大家分享一下怎么使用phpajson实现登录功能的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、什么是phpaj...
    99+
    2023-07-05
  • Java-web实现用户登录、注册功能
    源码在资源里 目录 环境搭建数据库 用户登录需求分析代码实现编写UserMapper类编写User类编写loginServlet类编写login.html编写login.css ...
    99+
    2023-10-10
    java 前端 servlet
  • Android使用http实现注册登录功能
    在项目中实现注册登录有很多种方式,一般对于初学者来说,不使用框架,采用http的post和get请求后台服务器,是一种更好理解底层源码的方式。使用框架实现注册登录虽然比自己封装pos...
    99+
    2024-04-02
  • JavaWeb使用mvc模式实现登录功能
    目录部署项目、环境搭建 详细内容 登录实现部署项目、环境搭建  详细内容   1.导包     ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作