当前位置: 首页 > news >正文

Springboot 项目一启动就获取HttpSession

在 Spring Boot 项目中,HttpSession 是有状态的,通常只有在用户发起 HTTP 请求并建立会话后才会创建。因此,在项目启动时(即应用刚启动还未处理任何请求)是无法获取到 HttpSession 的。

方法一:使用 HttpSessionListener(监听 session 创建)

@Component
public class MySessionListener implements HttpSessionListener {@Overridepublic void sessionCreated(HttpSessionEvent se) {// 当 session 被创建时执行System.out.println("Session created: " + se.getSession().getId());se.getSession().setAttribute("initData", "some value");}@Overridepublic void sessionDestroyed(HttpSessionEvent se) {// 当 session 销毁时执行}
}

## 方法二:使用拦截器或过滤器设置 Session 数据

@Component
public class SessionInitInterceptor implements HandlerInterceptor {@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {HttpSession session = request.getSession();if (session.getAttribute("initData") == null) {session.setAttribute("initData", "initialized on first request");}return true;}
}

并在配置中注册:

@Configuration
public class WebConfig implements WebMvcConfigurer {@Autowiredprivate SessionInitInterceptor sessionInitInterceptor;@Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(sessionInitInterceptor);}
}

相关文章:

  • React 泛型组件:用TS来打造灵活的组件。
  • 新能源汽车霍尔线束介绍
  • 深入解析 Tomcat 线程管理机制:从设计思想到性能调优
  • WPS自动换行
  • VR 汽车:引领生产与设计的革命性飞跃​
  • RISC-V 开发板 MUSE Pi Pro 搭建 Spacengine AI模型部署环境
  • 在部署了一台mysql5.7的机器上部署mysql8.0.35
  • 湖北理元理律师事务所:债务优化中的“生活锚点”设计
  • 生成式引擎优化(GEO):构建AI时代的内容霸权
  • 解决“无法打开或关闭Windows功能”问题
  • Prometheus + Grafana 监控常用服务
  • 在 CAD C# 二次开发中,Clipper2、CGAL 和 NTS(NetTopologySuite)对比
  • C#学习26天:内存优化的几种方法
  • 华为OD机试真题——书籍叠放(2025A卷:200分)Java/python/JavaScript/C/C++/GO最佳实现
  • 解码 Skate:打造链间可组合应用栈,构建跨越虚拟机的无状态未来
  • 欢乐熊大话蓝牙知识12:用 BLE 打造家庭 IoT 网络的三种方式
  • X-plore v4.43.05 强大的安卓文件管理器-MOD解锁高级版 手机平板/电视TV通用
  • 计算机网络学习20250528
  • 外部访问可视化监控 Grafana (Windows版本)
  • Docker部署Spark大数据组件:配置log4j日志
  • ui做网站实例/镇江网站定制
  • 网络隐私安全/广告优化
  • 三级域名和二级域名的区别/广州seo代理
  • 沈丘做网站去哪里/提供seo顾问服务适合的对象是
  • 贵阳高端网站建设/宁波网站建设优化企业
  • 投票网站做seo如何/南安seo