(转)从零开始的Spring Session(一)】的更多相关文章

上一篇文章中,我们使用Redis集成了Spring Session.大多数的配置都是Spring Boot帮我们自动配置的,这一节我们介绍一点Spring Session较为高级的特性. 集成Spring Security 之所以把Spring Session和Spring Security放在一起讨论,是因为我们的应用在集成Spring Security之后,用户相关的认证与Session密不可分,如果不注意一些细节,会引发意想不到的问题. 与Spring Session相关的依赖可以参考上一…
上一篇文章介绍了一些Session和Cookie的基础知识,这篇文章开始正式介绍Spring Session是如何对传统的Session进行改造的.官网这么介绍Spring Session: Spring Session provides an API and implementations for managing a user’s session information. It also provides transparent integration with: HttpSession -…
Session和Cookie这两个概念,在学习java web开发之初,大多数人就已经接触过了.最近在研究跨域单点登录的实现时,发现对于Session和Cookie的了解,并不是很深入,所以打算写两篇文章记录一下自己的理解.在我们的应用集成Spring Session之前,先补充一点Session和Cookie的关键知识. Session与Cookie基础 由于http协议是无状态的协议,为了能够记住请求的状态,于是引入了Session和Cookie的机制.我们应该有一个很明确的概念,那就是Se…
Session和Cookie这两个概念,在学习java web开发之初,大多数人就已经接触过了.最近在研究跨域单点登录的实现时,发现对于Session和Cookie的了解,并不是很深入,所以打算写两篇文章记录一下自己的理解.在我们的应用集成Spring Session之前,先补充一点Session和Cookie的关键知识. Session与Cookie基础 由于http协议是无状态的协议,为了能够记住请求的状态,于是引入了Session和Cookie的机制.我们应该有一个很明确的概念,那就是Se…
Session和Cookie这两个概念,在学习java web开发之初,大多数人就已经接触过了.最近在研究跨域单点登录的实现时,发现对于Session和Cookie的了解,并不是很深入,所以打算写两篇文章记录一下自己的理解.在我们的应用集成Spring Session之前,先补充一点Session和Cookie的关键知识. Session与Cookie基础 由于http协议是无状态的协议,为了能够记住请求的状态,于是引入了Session和Cookie的机制.我们应该有一个很明确的概念,那就是Se…
[本文章是否对你有用以及是否有好的建议,请留言] 在使用spring boot做负载均衡的时候,多个app之间的session要保持一致,这样负载到不同的app时候,在一个app登录之后,而访问到另外一台服务器的时候,session丢失. 常规的解决方案都是使用:如apache使用mod_jk.conf,使用Memcached进行共享. 在开发spring boot app的时候可以借助 spring session 和redis或者ehcache,用外置的redis或者ehcache来存储se…
之前在两篇文章中都有简单介绍或者提到过 自定义属性的用法: 25.Spring Boot使用自定义的properties[从零开始学Spring Boot] 51. spring boot属性文件之多环境配置[从零开始学Spring Boot] 但是在实际开发过程中有更复杂的需求,我们在对properties进一步的升华.在本篇博客中您将会学到如下知识(这节中有对之前的知识的温故,对之前的升华): (1) 在application.properties文件中添加自定义属性(单个属性使用): (2…
转载:http://blog.csdn.net/linxingliang/article/details/52013017 我们知道如果我们要在一个类使用spring提供的bean对象,我们需要把这个类注入到spring容器中,交给spring容器进行管理,但是在实际当中,我们往往会碰到在一个普通的Java类中,想直接使用spring提供的其他对象或者说有一些不需要交给spring管理,但是需要用到spring里的一些对象.如果这是spring框架的独立应用程序,我们通过 Application…
转载:http://blog.csdn.net/linxingliang/article/details/52069490 上一篇文章已经对定义Servlet 的方法进行了说明,过滤器(Filter)和 监听器(Listener)的注册方法和 Servlet 一样,不清楚的可以查看下上一篇文章(20): 本文将直接使用@WebFilter和@WebListener的方式,完成一个Filter 和一个 Listener:使用注解 @ServletComponentScan//这个就是扫描相应的Se…
[原创文章,转载请注明出处] 针对文章: ()Spring Boot 添加JSP支持[从零开始学Spring Boot] 有网友提了这么一些疑问: 1.Spring Boot使用jsp时,仍旧可以打成jar包的形式吗? 2.Spring Boot使用jsp时,比如说css,image,js 等三种静态资源文件,应该放在什么目录下?这些静态资源映射,在spring boot中具体应该怎么做? 例如,下面是spring中做的静态资源映射,但是在spring boot中不知道怎么处理:     <!-…
[原创文章,转载请注明出处] 个人使用比较习惯的json框架是fastjson,所以spring boot默认的json使用起来就很陌生了,所以很自然我就想我能不能使用fastjson进行json解析呢?        引入fastjson依赖库: <dependencies> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> &…
[原创文章,转载请注明出处] Spring Boot默认选择的Thymeleaf是2.0版本的,那么如果我们就想要使用3.0版本或者说指定版本呢,那么怎么操作呢?在这里要说明下 3.0的配置在spring boot 1.4.0+才支持的,当前博主自己使用的是1.3.3版本,但是会抛出异常信息,当前官方最新支持的是1.4.0.RELEASE.再次强调低版本可能启动会报错,需要使用1.4.0+版本哦.在1.4.0版本默认的还是选择2.0版本的. 只需要在pom.xml加入配置即可,具体看代码: <p…
在之前有一篇文章说了,博客名称从原来的<从零开始学Spring Boot>更改为<Spring Boot常见异常汇总>,后来写了几篇文章之后发展,有些文章还是一些知识点,所以后续的文章还是决定还原回原来的博客名称<从零开始学Spring Boot>了.好了,这些都是无关痛痒的话,那么我们看看这章的内容吧. 事情的起源:有人问我,说编写了一个/hello访问路径,但是吧,不管是输入/hello还是/hello.html,还是/hello.xxx都能进行访问.当时我还以为他…
[从零开始学习Spirng Boot-常见异常汇总] 事情的起因:有人问过我们这个这个问题:为什么我利用Spring data jpa写的方法没有按照我想要的情况进行执行呢?我记得当时只是告诉他你你先看看Spring Data的命名规则吧.所以在这一小节把Spring Data方法定义的规则简单说明下. (1)简单条件查询 简单条件查询:查询某一个实体类或者集合. 按照Spring Data的规范的规范,查询方法以find | read | get 开头,涉及查询条件时,条件的属性用条件关键字连…
[从零开始学习Spirng Boot-常见异常汇总] 如果您碰到什么问题,您可以加群进行探讨,在群里有加入的都是Spring Boot志同道合的朋友: Spring Boot QQ交流群:193341332 [Spring Boot 系列博客] 61. mybatic insert异常:BindingException: Parameter 'name' not found[从零开始学Spring B] 60. Spring Boot写后感[从零开始学Spring Boot] 59. Sprin…
[从零开始学习Spirng Boot-常见异常汇总] 在之前的文章已经讲过spring boot集成mybatis了,但是忘记说一个很重要的知识点了,那就是获取获取主键id,这篇文章补充下,spring boot集成mybatis看之前文章: (). Spring Boot MyBatis连接Mysql数据库[从零开始学Spring Boot] 其实这个也很简单,主要是使用@Options注解,核心代码如下: @Insert("insert into Demo(name,password) va…
[从零开始学习Spirng Boot-常见异常汇总] 问题的提出: 我们在开发过程当中,我们可能会碰到这样的问题:No qualifying bean  就是我们定义的bean无法进行注入,那到底是什么原因呢,有时候挺难定位的,当然这个也需要养成良好的编码习惯,这样也会降低出错的几率. 那么一般说是No quanlifying bean很有可能就是我们没有使用注解或者xml注入我们的bean,要么就是我们bean的名称不是我们注入时指定的名称,那么我们就会想如何查看已经载入到spring boo…
[从零开始学习Spirng Boot-常见异常汇总] 在使用JPA的时候,如果对bean的生命周期不了解的话,难免会碰到一些问题,比如:InvalidDataAccessApiUsageException: Removing a detached instance . 那么这一小节说说实体Bean的生命周期. 1.实体Bean生命周期的4种状态 实体分为被容器管理和不被容器管理两种.可以通过实体管理器的的两个方法进行检测:    contains()用来检查实体是否被管理.    clear()…
[从零开始学习Spirng Boot-常见异常汇总] 我们按照正常的流程编码好了 controller访问访问方法/hello,对应的是/templates/hello.html文件,但是在页面中还是抛出了错误信息: Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a fallback. Tue Jul 26 21:01:09 CST 2016…
[从零开始学习Spirng Boot-常见异常汇总] Spring的代理模式有两种:java自带的动态代理模式和cglib代理模式,cglib代码模式适用于没有接口的类,而java自带适用于接口类,默认情况下spring boot或者spring 采用接口类的代理模式,如果我们是基于接口编程的,是不会发生问题的,但是如果我们定义了一个class类继承Base类的时候就会出问题了.如下代码就会出现问题: 基本接口类com.kfit.demo.test.IBaseTestService: packa…
[从零开始学习Spirng Boot-常见异常汇总] 这个小节吧,是无意当中看了一篇文章,觉得介绍的特别好,引用到我的博客中,让大家也乐下.那么他是怎么解说IOC的呢?看如下: 套用好莱坞的一句名言就是:你呆着别动,到时我会找你. 什么意思呢?就好比一个皇帝和太监 有一天皇帝想幸某个美女,于是跟太监说,今夜我要宠幸美女 皇帝往往不会告诉太监,今晚几点会回宫,会回哪张龙床,他只会告诉太监他要哪位美女 其它一切都交由太监去安排,到了晚上皇帝回宫时,自然会有美女出现在皇帝的龙床上 这就是控制反转,而把…
[从零开始学习Spirng Boot-常见异常汇总] 在(39.2). Spring Boot Shiro权限管理[从零开始学Spring Boot] 这一章节中有人碰到这样一个问题"导入的数据和我自己生成的表不对应自己生成的表名有下滑杠连接符". 这个问题主要是JPA的命名策略不一致导致的. 我们有这么一个配置: spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.DefaultNamingStrategy 这里的值有两个…
[从零开始学习Spirng Boot-常见异常汇总] 事情的起源,无意当中在一个群里看到这么一句描述:"有人么?默默的问一句,现在开发用mybatis还是hibernate还是jpa"? 然后大家就进行各种回答,但是没有有质疑这句话描述的合理性,个人觉得需要清楚概念的,在这里mybatis大家肯定是没有什么疑问,我们把上面那句话更改下,方便我们抛出一些点出来,去掉mybatis修改为:"现在开发是使用hibernate还是 jpa"? 那么在这里的话,我们就要清楚h…
[从零开始学习Spirng Boot-常见异常汇总] 在Spirng Boot中集成了PageHelper,然后也在需要使用分页的地方加入了如下代码: PageHelper.startPage(1,1); 但是就是不生效呢,数据库的所有数据都查询出来了这是咋回事呢? 这个可能你使用错了版本号,主要是pom.xml文件中的版本的引入,错误的版本引入: <dependency> <groupId>org.mybatis.spring.boot</groupId> <a…
mybatic insert异常:BindingException: Parameter 'name' not found [从零开始学习Spirng Boot-常见异常汇总] 异常信息如下: nested exception is org.apache.ibatis.binding.BindingException: Parameter 'name' not found. Available parameters are [0, 1, param1, param2] 出现这个异常的原因是因为你…
从2016年4月15日到2016年7月20日经历长达3个月的时间,[从零开始学习Spring Boot]系列就要告一段落了.国内的各种资源都比较乱或者是copy 来copy去的,错了也不加以修正下,导致通过百度找到的资源可能都是错误的,正是由于这么一种情况,博主才想写这系列的博客的,当然也有好些博主的文章真是很赞. 不曾拿起:谈何放下:不曾经历,谈何懂得.没有用心写过博客的人都无法感受到用心人写博客的不易.在此我们真的要感谢那些无私奉献,用他们自己的时间,把他们的才华以及经验展现给我们,是他们的…
大纲: (1) 入门例子: (2) 国际化: (3) 在代码中添加错误信息: (1) 入门例子: Validator主要是校验用户提交的数据的合理性的,比如是否为空了,密码长度是否大于6位,是否是纯数字的,等等.那么在spring boot怎么使用这么强大的校验框架呢. 在这里我们主要是使用注解进行学习.我们先说说我们的需求: 我们有一个demo.html,在页面上有两个元素 姓名输入框,密码输入库,提交按钮. 提交到后台之后,使用Validator进行校验,然后如果存在错误,转发到demo.h…
国际化(internationalization)是设计和制造容易适应不同区域要求的产品的一种方式.它要求从产品中抽离所有地域语言,国家/地区和文化相关的元素.换言之,应用程序的功能和代码设计考虑在不同地区运行的需要,其代码简化了不同本地版本的生产.开发这样的程序的过程,就称为国际化. 那么当我们使用Spring Boot如何进行国际化呢?那么当你读完这篇文章你会学到如下知识: (1) spring boot 加入thymeleaf: (2) 页面元素国际化: (3) spring boot默认…
什么是"异步调用"? "异步调用"对应的是"同步调用",同步调用指程序按照定义顺序依次执行,每一行程序都必须等待上一行程序执行完成之后才能执行:异步调用指程序在顺序执行时,不等待异步调用的语句返回结果就执行后面的程序. 同步调用 下面通过一个简单示例来直观的理解什么是同步调用: 定义Task类,创建三个处理函数分别模拟三个执行任务的操作,操作消耗时间随机取(10秒内) package com.kfit.task; import java.util…
Spring Boot 其默认是集成web容器的,启动方式由像普通Java程序一样,main函数入口启动.其内置Tomcat容器或Jetty容器,具体由配置来决定(默认Tomcat).当然你也可以将项目打包成war包,放到独立的web容器中(Tomcat.weblogic等等),当然在此之前你要对程序入口做简单调整. 一.内嵌Server配置 Server的几个常用的配置做个简单说明" #项目contextPath,一般在正式发布版本中,我们不配置 server.context-path=/sp…