springboot设置session超时和session监听

摘要:
--导入配置--˃org。弹簧框架。boot</groupId><artifactId>spring-boot</artifactId><version>1.5.4。RELEASE</version></adependency>1.3注入以下bean对象packagecom。inosoft公司。会话到springboot启动类;importorg.springframework.boot。SpringApplication;importorg.springframework.boot.au配置。SpringBootApplication;导入org.springframework.boot.context.embedded。可配置的嵌入式Servlet容器;导入org.springframework.boot.context.embedded。嵌入式ServletContainerCustomizer;导入组织弹簧框架文本注释。豆importjava.util.concurrent。时间单位;@SpringBootApplicationpublicclassSessionApplication{publicstaticvoidmain{SpringApplication.run;}@BeanPublicEmbeddedServletContainerCustomizerbembeddedServletContainerCustomize(){returnnewEmbeddedServlet ContainerCustomizer(){@Overridepublicvoidcustomize{//将会话超时设置为1分钟容器。setSessionTimeout;}};}}}}2.添加会话管理器和侦听器包com.sinosot.session。服务器导入java.util。HashMap;importjavax.servlet.http。HttpSession;/***Createdbylijunming*ondate2018-09-20*会话管理器*time20:01*/publicclassMySessionContext{privatestaticHashMapmymap=newHashMap();publicstaticsynchronizeddvoidAddSession{if(session!
 

                             2.0版本以下设置session超时时间

1.  springboot 2.0版本以下配置session超时

     1.1 application.properties配置文件: spring.session.store-type=none

     1.2 引入 spring-boot和spring-session 2个依赖包


<!--session管理-->

<dependency>
<groupId>org.springframework.session</groupId>

<artifactId>spring-session</artifactId>

<version>1.3.2.RELEASE</version>

</dependency>

<!--引入配置-->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot</artifactId>

<version>1.5.4.RELEASE</version>

</dependency>

     1.3在springboot启动类注入以下bean对象

package com.sinosoft.session;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.embedded.ConfigurableEmbeddedServletContainer;
import org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer;
import org.springframework.context.annotation.Bean;
import java.util.concurrent.TimeUnit;
@SpringBootApplication
public class SessionApplication {
public static void main(String[] args) {
SpringApplication.run(SessionApplication.class, args
);
}
@Bean
public EmbeddedServletContainerCustomizer embeddedServletContainerCustomizer() {
return new EmbeddedServletContainerCustomizer() {
@Override
public void customize(ConfigurableEmbeddedServletContainer container) {
//设置session超时时间为1分钟
container.setSessionTimeout(1, TimeUnit.MINUTES);
}
};
}
}

2.添加session管理器和监听器

package com.sinosoft.session.server;

import java.util.HashMap;

import javax.servlet.http.HttpSession;

/**

* Created by lijunming

* on date 2018-09-20

* session管理器

* time 20:01

*/

public class MySessionContext {

private static HashMap mymap = new HashMap();

public static synchronized void AddSession(HttpSession session) {

if (session != null) {

mymap.put(session.getId(), session);

}

}

public static synchronized void DelSession(HttpSession session) {

if (session != null) {

mymap.remove(session.getId());

}

}

public static synchronized HttpSession getSession(String session_id) {

if (session_id == null)

return null;

return (HttpSession) mymap.get(session_id);

}

}

package com.sinosoft.session.server;

import org.springframework.stereotype.Component;

import javax.servlet.http.HttpSession;

import javax.servlet.http.HttpSessionEvent;

import javax.servlet.http.HttpSessionListener;

/**

* Created by lijunming

* on date 2018-09-20

* session监听器

* time 20:02

*/

@Component

public class MySessionListener implements HttpSessionListener {

@Override

public void sessionCreated(HttpSessionEvent httpSessionEvent) {

System.out.println("session正在創建");

MySessionContext.AddSession(httpSessionEvent.getSession());

}

@Override

public void sessionDestroyed(HttpSessionEvent httpSessionEvent) {

HttpSession session = httpSessionEvent.getSession();

System.out.println("session注銷中");

MySessionContext.DelSession(session);

}

}

 

https://blog.csdn.net/ming19951224/article/details/82792401

免责声明:文章转载自《springboot设置session超时和session监听》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Spark操作dataFrame进行写入mysql,自定义sql的方式SQLAlchemy+Flask-RESTful使用(四)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

centos登录密码正确但一直报login incorrect错误(错误赋予权限)

一、先进入单系统用户态 1、在开机启动进入grub菜单界面时,快速按键盘e键,进入编辑界面2、找到Linux 16的那一行,将ro改为rw init=/sysroot/bin/sh*如果用的是kvm做了console连接授权,还要把授权的console=ttyS0去掉3、按下 Control+x ,使用单用户模式启动4、接着使用下面的命令访问系统 chro...

java web定时任务---quartz

写在前面:   前面有简单的记录下Timer定时的用法,但是在此次项目中,选择的是quartz来完成定时操作任务的。两者都可以完成定时操作,但是spring可以整合quartz,并且配置起来也比较简便,还可以同时跑多个任务。就选择了quartz,quartz的用法也很强大,这里也是简单的记录下。   第一步还是需要写自己的任务类,如果有涉及到对数据库的增删...

ANDROID窗体管理服务实现机制和架构分析

 一、功能     窗体管理是ANDROID框架一个重要部分,主要包含例如以下功能:    (1)Z-ordered的维护   (2)窗体的创建、销毁   (3)窗体的绘制、布局    (4)Token管理,AppToken    (5)活动窗体管理(FocusWindow)    (6)活动应用管理(FocusAPP)    (7)输入法管理  ...

Laravel session的保存机制

与$_SESSION不同Laraver中的session是在当次程序执行完毕时保存到文件或其他存储引擎中的,也就是说如果使用了die等强制结束程序的函数将不会自动保存session导致session失效,但Laravel提供了save()方法来手动保存session //session不生效的例子 session()->put(['user_id'=...

struts2令牌(token)内部原理

        小菜最近接触了struts2中的令牌知识,由于该知识点比较重要,因此想弄明白些,于是满怀信心的上网查阅资料,结果让小菜很无奈,网上的资料千篇一律,总结出来就一句话:“访问页面时,在页面产生一个token id,同时在服务器的session中保存一个同样的id,提交时判断如果相同怎么样不相同怎么样。。。”     可能是小菜愚笨,实在是无法...

SmartSql漫谈

最近在看smartSql源码,兄弟写的。写的很不错取取经。 记录下一些学习的东西,刚开始我先不系统的写了,随意一点哈,我看的差不多再给大家一个模块一个模块系统的写。 public T ExecuteScalar<T>(RequestContext context) { T result =...