`

Spring中取当前用户信息

阅读更多

 当前的用户信息这样拿:
 先定义一个局部线程变量里,
 然后在登录后将用户保存到该变量里面,
 这样就可以在你的当前spring容器中可以拿了

 
代码大致如下:

 

 

/**
*用户信息对象
*/

public class AuthUserVO {

 private String username;
 
 private String password;

 public String getUsername() {
  return username;
 }

 public void setUsername(String username) {
  this.username = username;
 }

 public String getPassword() {
  return password;
 }

 public void setPassword(String password) {
  this.password = password;
 }
 
 
 public AuthUserVO(){
  
 }
 
 public AuthUserVO(String username, String password){
  this.username=username;
  this.password=password;
 }
 
}


/**
*对用户信息进行取或设置
*/
public class AuthCurrentUser {
 /**
 * 声明局部线程变量
 */
 private static ThreadLocal<AuthUserVO> currentUser = new ThreadLocal<AuthUserVO>();
 /**
 * 获取当前用户喜讯你对象
 * @return 当前用户喜讯你对象,IUserInfoVO类型
 */
 public static AuthUserVO get() {
 return (AuthUserVO) currentUser.get();
 }

 /**
 * 设置当前用户喜讯你对象
 * @param user 用户值对象
 */
 public static void set(AuthUserVO user) {
 currentUser.set(user);
 }
}

 


在你的登录action里:
AuthCurrentUser.set((AuthUserVO) request.getSession().getAttribute(
SessionScope.SESSION_FLAG_USERINFO));

 

 

在你所需要想拿用户的时候:
AuthUserVO accountdo = (AuthUserVO) AuthCurrentUser.get();

 

 

因为用户登录的线程与你已初始化的spring不在同一个容器里面,所以通过线程变量去传

分享到:
评论

相关推荐

    spring整合hibernate实现事务处理

    在IT行业中,Spring框架与Hibernate框架的整合是常见的企业级应用开发模式,特别是在Java领域。SSH,即Struts、Spring和Hibernate,曾是流行的一种Java Web开发栈。本篇文章将详细探讨如何通过Spring整合Hibernate来...

    spring3中使用SLF4J

    在Spring 3框架中,SLF4J(Simple Logging Facade for Java)是一个重要的日志抽象层,它允许用户在不修改代码的情况下切换不同的日志实现。SLF4J提供了一个统一的API,使得开发人员可以方便地在各种日志框架(如Log...

    spring-nested-aop.zip_aop_spring aop

    // 更改用户信息... userRepository.updateUserProfile(user); } } ``` 在这个例子中,`createUser`方法内部调用了`updateUserProfile`,由于`updateUserProfile`被标记为`REQUIRES_NEW`,所以它将在一个新的独立...

    struts2+spring+ibatis 实现分页.rar

    Struts2、Spring和iBatis是Java Web开发中常用的三个框架,它们分别负责MVC模式中的Action层、业务逻辑层以及数据访问层。在这个"struts2+spring+ibatis 实现分页"的项目中,我们将探讨如何将这三个框架整合起来,...

    精选_基于Springboot和Redis实现的快递代取系统_源码打包

    在快递代取系统中,Redis的主要作用是缓存频繁访问的数据,如用户信息、快递状态等,以减少对数据库的直接访问,提高系统响应速度。Redis支持多种数据结构,如字符串、哈希、列表、集合和有序集合,这使得它能灵活地...

    spring boot 实现多数据源源码

    在Spring Boot应用中,多数据源的实现是一个常见的需求,特别是在大型系统中,可能需要连接到不同的数据库以满足不同业务场景的需求。以下是对标题和描述中提到的四种多数据源实现方式的详细解释: 1. **原始方式...

    详解Spring MVC拦截器实现session控制

    这样做的结果是,当前用户的旧session将被立即销毁,而新的session将被创建。 对于未登录的用户访问特定目录时的处理,文章中提到了background目录。在这个目录下的页面访问之前,拦截器会检查session中是否包含...

    _图书管理系统,数据库课程设计。Spring_Boot_Library-Manage-System.zip

    对于前端界面,虽然当前的文件名称列表中没有提及,但一个完整的图书管理系统通常包括一个用户友好的界面。这可能使用HTML、CSS和JavaScript技术开发,以及可能使用Vue.js、React.js或Angular等流行的前端框架来构建...

    Spring Security实现多次登录失败后账户锁定功能

    要实现多次登录失败账户锁定的功能,我们需要先回顾一下基础知识:Spring Security 不需要我们自己实现登录验证逻辑,而是将用户、角色、权限信息以实现 UserDetails 和 UserDetailsService 接口的方式告知 Spring ...

    基于微信小程序的校园快递代取系统答辩PPT.pptx

    高校中的快递代取问题常常困扰学生和教职工,快递代取系统的设计不仅解决了这一问题,还提高了校园内部信息管理系统的科技含量和实用性,展现了信息化管理在教育领域的应用潜力。通过这个系统,用户可以更直观地感受...

    理财管理(spring boot+thymeleaf)

    该毕业设计使用了当前较为流行的spring boot,spring,spring mvc,mybatis,shiro框架分页处理使用了pagehelper进行...该系统主要解决了理财中的一些问题,包含功能:权限管理,用户信息管理,理财产品管理等内容。

    SpringBoot 接口访问频率限制(二)

    在SpringBoot应用中,接口访问频率限制是一种常见的安全策略,用于防止恶意用户或者自动化脚本对服务进行频繁的、超出正常范围的访问,这可能导致服务器过载甚至崩溃。本篇我们将深入探讨如何在SpringBoot中实现接口...

    基于微信小程序的快递代取系统设计与实现代码.rar

    数据库设计涉及用户信息、订单信息、快递信息、代取员信息等多个表,需要合理规划表结构,确保数据的一致性和完整性。 8. 安全性考虑 系统应确保用户信息安全,对敏感信息如密码、支付信息进行加密处理,同时采用...

    web 版的 银行取号系统 java版

    5. **客户条子**:客户取到号码后,系统会打印出一张条子,上面包含号码信息。这部分可能涉及到Java的打印API,如PrintService API,以及可能需要的条码或二维码生成库。 6. **安全性与并发处理**:由于涉及银行...

    spring-boot-starter-axon:Spring Boot Axon 启动器

    7. **axon-configurer**:Spring Boot Axon starter会自动配置AxonConfigurer,这样开发者就可以在Spring Boot的配置类中轻松定制Axon的行为。 8. **事件处理器类型**:包括订阅处理器(Subscription Event ...

    (2.0版本)自己写的struts2+hibernate+spring实例

    说当前版本因为原来使用find方法是从代理中取.而spring默认的数据持久话只能包含业务层和数据层.不能包含界面层.所以用find方法会导致session失效.故用get方法.现在这个问题已经解决.其实就是把原web.xml中的最后的...

    web 版的 银行取号系统 java版 网络版 udp 实现银行取号器,屏幕显

    这个系统可以让用户通过Web界面进行操作,适用于各种在线服务环境,比如银行的网上营业厅,提供客户在虚拟环境中获取服务号码的功能。 【描述】中提到的“网络版udp实现银行取号器”揭示了该系统采用UDP(User ...

    大数据面试宝典包含java基础和spring面试题

    - `&`:按位与运算或条件表达式中的短路与运算(取决于上下文)。 - `&&`:逻辑与运算,短路运算符,如果左边为假,则右边不会执行。 ##### 9. 内存模型 - **栈**:存放局部变量和方法调用信息,生命周期随方法调用...

Global site tag (gtag.js) - Google Analytics