[英]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.