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

2024-02-04

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

如果我们像下面这样声明:

@Autowired 
private HttpSession httpSession;

当恰好在 Spring 工作流程中时,上面声明的 httpSession 变量将被初始化为request.getSession(true)?


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

要自动装配一个类,您需要通过使用注释(@Controller、@Service、@Repository、@Component)或通过在配置类中声明 @Bean 将其指定为 bean。一旦定义了 bean,Spring 就会在 spring 上下文初始化时自动装配或构造对象(在 web 应用程序的服务器启动期间,并且在控制台/独立应用程序中显式初始化 spring 上下文)。

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

public getHttpSession(HttpServletRequest request) {
    // put your logic here and return session object 
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring MVC:HttpSession 的自动装配如何工作? 的相关文章

随机推荐