Springboot 項(xiàng)目一啟動(dòng)就獲取HttpSession的兩種方法
在 Spring Boot 項(xiàng)目中,HttpSession 是有狀態(tài)的,通常只有在用戶發(fā)起 HTTP 請(qǐng)求并建立會(huì)話后才會(huì)創(chuàng)建。因此,在項(xiàng)目啟動(dòng)時(shí)(即應(yīng)用剛啟動(dòng)還未處理任何請(qǐng)求)是無法獲取到 HttpSession 的。
方法一:使用 HttpSessionListener(監(jiān)聽 session 創(chuàng)建)
@Component
public class MySessionListener implements HttpSessionListener {
@Override
public void sessionCreated(HttpSessionEvent se) {
// 當(dāng) session 被創(chuàng)建時(shí)執(zhí)行
System.out.println("Session created: " + se.getSession().getId());
se.getSession().setAttribute("initData", "some value");
}
@Override
public void sessionDestroyed(HttpSessionEvent se) {
// 當(dāng) session 銷毀時(shí)執(zhí)行
}
}
方法二:使用攔截器或過濾器設(shè)置 Session 數(shù)據(jù)
@Component
public class SessionInitInterceptor implements HandlerInterceptor {
@Override
public 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;
}
}
并在配置中注冊(cè):
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Autowired
private SessionInitInterceptor sessionInitInterceptor;
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(sessionInitInterceptor);
}
}
到此這篇關(guān)于Springboot 項(xiàng)目一啟動(dòng)就獲取HttpSession的兩種方法的文章就介紹到這了,更多相關(guān)Springboot啟動(dòng)就獲取HttpSession內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于SpringBoot和Vue的動(dòng)態(tài)語音播放實(shí)現(xiàn)
本文介紹如何使用SpringBoot和Vue實(shí)現(xiàn)音頻文件的動(dòng)態(tài)播放,包括前端頁面設(shè)計(jì)、后端接口開發(fā)、音頻文件存儲(chǔ)和調(diào)用等方面。通過該實(shí)現(xiàn),用戶可以在網(wǎng)頁上直接播放音頻,增強(qiáng)用戶體驗(yàn),提高網(wǎng)站互動(dòng)性2023-04-04
mybatis-plus實(shí)體類中出現(xiàn)非數(shù)據(jù)庫映射字段解決辦法
這篇文章主要介紹了mybatis-plus實(shí)體類中出現(xiàn)非數(shù)據(jù)庫映射字段解決辦法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
詳解Java使用Jsch與sftp服務(wù)器實(shí)現(xiàn)ssh免密登錄
這篇文章主要介紹了詳解Java使用Jsch與sftp服務(wù)器實(shí)現(xiàn)ssh免密登錄,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10
Maven多個(gè)項(xiàng)目實(shí)現(xiàn)聚合過程解析
這篇文章主要介紹了Maven多個(gè)項(xiàng)目實(shí)現(xiàn)聚合過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08
spring-boot-maven-plugin:打包時(shí)排除provided依賴問題
這篇文章主要介紹了spring-boot-maven-plugin:打包時(shí)排除provided依賴問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04
JDBC實(shí)現(xiàn)Mysql自動(dòng)重連機(jī)制的方法詳解
最近在工作中發(fā)現(xiàn)了一個(gè)問題,通過查找相關(guān)的資料終于解決了,下面這篇文章主要給大家介紹了關(guān)于JDBC實(shí)現(xiàn)Mysql自動(dòng)重連機(jī)制的相關(guān)資料,文中給出多種解決的方法,需要的朋友可以參考借鑒,下面來一起看看吧。2017-07-07
mac下idea啟動(dòng)web項(xiàng)目報(bào)錯(cuò)java.net.SocketException:socket closed
本文主要介紹了作者在項(xiàng)目啟動(dòng)時(shí)遇到的一個(gè)問題——無法打開調(diào)試端口,經(jīng)過一系列排查和嘗試,最終發(fā)現(xiàn)是由于權(quán)限問題導(dǎo)致的,作者還分享了如何修改文件權(quán)限的方法,并提醒大家不要隨意kill掉占用端口的進(jìn)程2024-12-12

