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不在同一个容器里面,所以通过线程变量去传

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值