Spring Java配置:会话超时

弹簧框架徽标

当您可以使用基于Java的配置开发Spring应用程序时,我们生活在一个美好的时光。 不再有多余的XML代码,只有纯Java代码。 在本文中,我想讨论一个关于Spring应用程序中会话管理的热门话题。 更确切地说,我将以Java配置样式讨论会话超时。

因此,在我以前的一篇博客文章中,我已经说过如何管理会话的生命周期。 但是该解决方案意味着使用了web.xml文件,这对于基于Java的配置不是必需的。 因为它的作用是扩展AbstractAnnotationConfigDispatcherServletInitializer类的类。 通常看起来像这样:

import javax.servlet.Filter;import org.springframework.web.filter.HiddenHttpMethodFilter;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;public class Initializer extends AbstractAnnotationConfigDispatcherServletInitializer {@Overrideprotected Class<?>[] getRootConfigClasses() {return null;}@Overrideprotected Class<?>[] getServletConfigClasses() {return new Class<?>[] { WebAppConfig.class };}@Overrideprotected String[] getServletMappings() {return new String[] { "/" };}@Overrideprotected Filter[] getServletFilters() {return new Filter[] { new HiddenHttpMethodFilter() };}}

我已经写了很多有关这种配置用法的文章,但是在这里我们应该特别注意AbstractAnnotationConfigDispatcherServletInitializer扩展的类。 我谈论AbstractDispatcherServletInitializer类。 它具有onStartup(ServletContext servletContext)方法。 其目的是使用初始化此Web应用程序所需的任何Servlet,过滤器,侦听器上下文参数和属性来配置ServletContext

直接在这个地方,是回顾HttpSessionListener接口的好时机。 正如您已经在此接口的实现中猜到的那样,我们能够在应用程序中管理每个刚创建的会话。 例如,我们可以将最大非活动间隔设置为等于5分钟:

import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;public class SessionListener implements HttpSessionListener {@Overridepublic void sessionCreated(HttpSessionEvent event) {System.out.println("==== Session is created ====");event.getSession().setMaxInactiveInterval(5*60);}@Overridepublic void sessionDestroyed(HttpSessionEvent event) {System.out.println("==== Session is destroyed ====");}
}

为了将此会话管理更改应用到基于Java的配置中,我们必须向Initializer类添加以下代码片段:

...@Overridepublic void onStartup(ServletContext servletContext) throws ServletException {super.onStartup(servletContext);servletContext.addListener(new SessionListener());}
...

这就是所有的Java怪胎,喜欢编码。

翻译自: https://www.javacodegeeks.com/2014/05/spring-java-configuration-session-timeout.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/363206.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分而治之思想

当一个问题的规模很大时&#xff0c;直接求解往往比较困难。对于这类问题&#xff0c;很大一部分是可以采取分而治之的思想来处理的。 分治法是把问题划分成多个子问题来进行处理。这些子问题&#xff0c;在结构上跟原来的问题一样&#xff0c;但是规模比原来的问题要小。如果得…

诡异的DateTime.TryParseExact方法

老赵在介绍Routing扩展的WebCast中出了点“小状况”&#xff0c;即将DateTime.ToString(“yyyy-MM-dd”)修改为DateTime.ToString(“yyyy/MM/dd”)后&#xff0c;页面中仍然显示为yyyy-MM-dd样式的日期格式。相信看过WebCast的同学都还记得吧。我不解&#xff0c;将老赵代码中D…

iSlide——图标库、图示库的用法

iSlide中&#xff0c;有一个“图示库”功能&#xff0c;主要功能是同时排列多块文字或多张图片。单击插图库&#xff0c;会弹出一个新的对话框。从中&#xff0c;可以选择权限、分类、数量数据和样式&#xff0c;也可以直接搜索。 下面就举一个例子&#xff1a;我要开一个班队会…

查看系统剩余空间

1.剩余空间&#xff1a;df -h 2.追踪最耗费硬盘的文件位置 cd /du -h --max-depth1 | sort -rn 转载于:https://www.cnblogs.com/xiaobiaomei/p/10669159.html

『ExtJS』01 001. ExtJS 4 类的定义

ExtJS 4 类的定义类的定义与类方法的调用 样例代码// Define new class Vehicle under the Cookbook namespaceExt.define(Cookbook.Vehicle, {// class configuration goes hereManufacturer : Aston Martin,Model : Vanquish,getDetails : function() {alert(I am an this…

使用C#調用外部程式或是執行DOS命令

在.NET裡要如何調用外部程式呢?? 在.net裡&#xff0c;提供了Process類&#xff0c;提供我們強大的調用外部工具功能&#xff0c;並透過重新導向輸入與輸出&#xff0c;可以取得執行結果&#xff0c;下面就用一個例子來示範在一個WinForm裡輸入一個Dos命令&#xff0c;然後呼…

SQLiteOpenHelper+ContentProvider的使用

效果图&#xff1a; PetDbHelper package com.example.admin.pets;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;import com.example.admin.pets.PetContract.PetEntry;public class PetDb…

[Mac入门] 如果更快的打开程序或文件

今天有位网友问我在Windows下可以用CtrlR快速打开程序/文件夹等&#xff0c;在Mac下有没有相类似的功能&#xff1f;本文将介绍一些我的一般做法。 1.Windows下的CtrlR是什么&#xff1f; 我打算从解释CtrlR开始说起&#xff0c;希望朋友们别嫌烦&#xff5e;。Windows下系统全…

ActiveMQ –经纪人网络解释–第4部分

在前面的第3部分中 &#xff0c;我们已经看到ActiveMQ如何帮助将远程使用者与本地使用者区分开来&#xff0c;这有助于确定从消息生产者到使用者的较短路径。 在第4部分中&#xff0c;我们将研究如何在远程代理上负载均衡并发使用者。 让我们考虑一些高级配置&#xff0c;以平…

总结CSS3新特性(选择器篇)

CSS3新增了嗯- -21个选择器,脚本通过控制台在这里运行; ~: p ~ p {color : red;/*此条规则将用于p后边所有的p...就是除了第一个p的所有p,规则同p:not(:nth-of-type(1)),但是权重要低于后者*/} [attribute^value]: 选择该属性以特定值开头的元素 [attribute$value]: 选择该属…

工作流的设计,业务流程图的绘制与编辑,工作流软件,工作流源代码组件库,开发平台,开发引擎...

基于业务流程的工作流系统在当前的软件工业中占据着非常重要的部分&#xff0c;开发此类系统, 最困难的部分就是业务流程建模和电子表单的可视化界面部分,这部分界面要求有快速的响应时间, 完善的逻辑关系,以及根据需求不断变化而必须具备的灵活编辑功能. E-Form可视化图形源码…

Ajax全接触(1)

Ajax全称&#xff1a;Asynchronous JavaScript and XML(异步的JavaScript和XML) .Ajax不是某种编程语言 是一种在无需重新加载整个网页的情况之下能够更新部分网页的技术。 后面引入XMLHttpRequest对象用于后台和服务器交换数据&#xff0c;可以在不重新加载整个页面的前提下…

关于hibernate字段映射@colunm出现的问题以及jpa驼峰大写转_小写的问题探究

关于hibernate字段映射colunm出现的问题以及jpa驼峰大写转_小写的问题探究2018年04月24日 15:47:26 守望dfdfdf 阅读数&#xff1a;735 标签&#xff1a; colunmhibernate表映射实体类 更多个人分类&#xff1a; 工作 问题编辑版权声明&#xff1a;本文为博主原创文章&#xff…

LeetCode 上最难的链表算法题,没有之一!

题目来源于 LeetCode 第 23 号问题&#xff1a;合并 K 个排序链表。 该题在 LeetCode 官网上有关于链表的问题中标注为最难的一道题目&#xff1a;难度为 Hard &#xff0c;通过率在链表 Hard 级别目前最低。 题目描述 合并 k 个排序链表&#xff0c;返回合并后的排序链表。请分…

处理Akka应用程序中的每个事件

这里的事件&#xff0c;那里的事件&#xff0c;到处都是事件。 发布有关检查每一项Akka事件最终都能找到归宿的信息。 Akka和基于事件的反应式应用程序是创建软件的新方法。 在当前基于Scala的项目中&#xff0c;我们非常密集地使用Akka。 事件非常适合我们的用例&#xff0c;…

使用IntelliJ ..达2周,到目前为止一切正常

几乎已经过去了2个星期&#xff0c;我已经完全切换到IntelliJ作为我在家里和工作中的主要Java IDE。 到目前为止一切顺利&#xff0c;这是我的初步发现。 迁移 &#xff1a;我花了几个小时来迁移项目。 最终&#xff0c;如果您的项目已经Mavenized&#xff0c;事情就简单了&am…

WEB框架研究笔记一(准备)

DELPHI框架基本完成之后&#xff0c;开发一个WEB框架的想法越来越强烈&#xff0c;一直以来没有过完整的开发过一个WEB项目&#xff0c;这几年来&#xff0c;也就看过几个WEB的产品&#xff0c;了解了一下Struts&#xff0c;去年研究了一下DORADO&#xff0c;顺便了解了SpringH…

备份文件夹

用到的API和数据结构&#xff1a; WINDOWS数据结构&#xff1a; WIN32_FIND_DATA WINDOWS API&#xff1a; FindFirstFile FindNextFile CompareFileTime CopyFIle DeleteFile View Code #include <windows.h> #include <iostream> #include <string> using…

面试整理(1):原生ajax

接到电话面试&#xff0c;有一些送分题答的不好&#xff0c;在这里整理一下 问题&#xff1a;原生ajax的工作流程是怎么样的&#xff1f; 老用封装好的工具&#xff0c;原生的ajax其实并不熟悉&#xff0c;今天复习一下。主要参考http://www.w3school.com.cn/ajax/ 要发一个…

QT

Qt软件 Qt是一个跨平台的C图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。Qt是完全面向对象的&#xff0c;很容易扩展&#xff0c;并且允许真正地组件编程。 自从1996年早些时候&#xff0c;Qt进入商业领域&#xff0c;它已经成为全…