簡體   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