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