我使用下面的代码从session 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");
}
答案 0 :(得分:1)
不,没关系。它确实是线程安全的。但是从另一方面来说,你应该明白它只能在HTTP请求线程和Spring MVC环境中使用。
从另一方面来说,如果您想从@Controller
或@Service
获取该属性,那么您始终可以inject
进行会话:
@Controller
class MyController {
@Autowired
private HttpSession session;
}