繁体   English   中英

从静态方法获取会话属性

[英]Fetching session attributes from static methods

我使用下面的代码从会话util类中获取会话属性(包含静态方法)。 想知道下面的代码在多线程环境中可能是正确的方法,或者有没有其他更好的方法可以从util中获取会话。

public static HttpSession getSession(){
    ServletRequestAttributes attr = (ServletRequestAttributes) RequestContextHolder.currentRequestAttributes();
    HttpSession session = attr.getRequest().getSession();
    return session;
}
public static String getEmailIDFromSession(){
    return (String)getSession().getAttribute("USER_EMAIL");
}

没事儿。 这确实是线程安全的。 但是从另一方面,您应该了解它仅在HTTP Request Thread和Spring MVC环境中可用。

另一方面,如果您想从@Controller@Service获取该属性,则始终可以在其中inject会话:

@Controller
class MyController {

  @Autowired
  private HttpSession session;

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM