Spring MVC:HttpSession的自动装配是如何工作的?

时间:2016-12-14 22:58:29

标签: spring model-view-controller autowired httpsession

我想知道HttpSession的自动装配是如何工作的。

如果我们声明如下:

@Autowired 
private HttpSession httpSession;

完全在Spring工作流程中,上面声明的httpSession变量将使用request.getSession(true)进行初始化?

1 个答案:

答案 0 :(得分:2)

我不明白为什么要自动装配HttpSession,但这是自动装配的工作原理。

要自动化一个类,您需要通过使用注释(@ Controller,@ Service,@ Repository,@ Component)或在config类中声明@Bean将其指定为bean。一旦你定义了一个bean Spring就会在spring上下文初始化时自动装配或构造对象(在webapp的服务器启动期间,你在case console / standalone app中显式初始化spring context)。

由于HttpSession只能从HttpServletRequest对象中获取,因此在应用程序启动期间无法初始化它,因为在启动期间没有HttpServletRequest。如果您想在获取HttpSession之前实现某些逻辑,则可以创建一个像这样的util方法

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