2014-10-26 60 views
0

我使用下面的代碼從會話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"); 
} 

回答

1

不,沒關係。它確實是線程安全的。但是從另一方面你應該明白,它只能在HTTP Request Thread和Spring MVC環境中使用。

來自對岸,如果你想從你的@Controller獲得該屬性或@Service你總是可以inject會議有:

@Controller 
class MyController { 

    @Autowired 
    private HttpSession session; 

}