2016-12-14 74 views
0

我想知道HttpSession的自動裝配是如何工作的。Spring MVC:HttpSession的自動裝配是如何工作的?

如果我們聲明如下圖所示:

@Autowired 
private HttpSession httpSession; 

當正好在春節的工作流程,上述聲明的HttpSession變量將與request.getSession(true)初始化?

+0

不知道,爲什麼人們否決問題不理解一個實用程序方法HttpSession中之前實現? – Swamy

回答

2

我不明白你爲什麼要自動裝配HttpSession,但這裏是自動裝配的工作原理。

要自動裝載一個類,您需要通過使用註釋(@Controller,@Service,@Repository,@Component)或在配置類中聲明@Bean來將其指定爲一個bean。一旦你定義了一個bean,當Spring上下文初始化時(在webapp的服務器啓動過程中,並且在控制檯/ standalone應用程序中明確地初始化了spring上下文),Spring自動裝載或構造對象。

由於HttpSession只能從HttpServletRequest對象中獲取,因此在啓動過程中不能初始化它,因爲在啓動過程中沒有HttpServletRequest。如果你想要一些邏輯來獲取你可以創建這樣

public getHttpSession(HttpServletRequest request) { 
    // put your logic here and return session object 
} 
+0

自動切換HttpSession是從不同類訪問會話最方便的方式。如果自動裝配httpsession發佈了許多帖子,包括這個帖子,stackoverflow.com/questions/29487885,將會失效 – Swamy

+0

如果可行,這將很方便。我已經解釋了爲什麼它不可行的原因。讓我們知道你是否想出了一種自動裝配的HttpSession的方法。 – Avinash