spring-session之2 依葫芦画瓢做个小项目
前文,我们聊了下 初探 spring-session
, 不过毕竟代码是别人的, 我们自己的项目要是想用spring-session 那么该怎么用呢?
那么我们先做个小小的例子吧,今天我们先定个小目标,比如先....,额...
今天的目标是:
- 建一个 maven war 项目,里面包含简单的 servlet(你们想弄成springmvc还是 struts 随意),
- 然后加上
spring-session
的配置(基于redis), - 最后使用
maven tomcat plugin
启动
1.创建个 maven war 项目
大致信息
1.1 项目结构:
1.2 web.xml:
1.3 sample.SessionServlet:
1.4 index.jsp:
1.5 项目启动:
表示启动没有问题,那么我们可以继续下一步
2.加入 spring-session
的配置
2.1.依赖jar
要想使用spring-session
,首先需要 jar包 (此处以maven依赖为例)
首先,需要依赖 spring-session
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session</artifactId>
<version>${version.spring-session}</version>
</dependency>
其次,我们还需要使用适配的会话存储,官方提供了 spring-session-jdbc
spring-session-data-mongo
spring-session-data-redis
spring-session-data-gemfire
,可以根据不同的场景而择一使用
我们使用的是 spring-session-data-redis
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-data-redis</artifactId>
<version>${version.spring-session}</version>
</dependency>
完整依赖:
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session</artifactId>
<version>${version.spring-session}</version>
</dependency>
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-data-redis</artifactId>
<version>${version.spring-session}</version>
</dependency>
<!---->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${version.spring4}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${version.spring4}</version>
</dependency>
<!-- servlet-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
2.2 加入 spring-session 的配置文件
2.2.1 web.xml 增加 spring-session.xml 配置文件以及 springSessionRepositoryFilter
完整代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<!-- spring-session config -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath*:spring-session.xml
</param-value>
</context-param>
<!-- 这个filter 要放在第一个 -->
<filter>
<filter-name>springSessionRepositoryFilter</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSessionRepositoryFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>ERROR</dispatcher>
</filter-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- ************************************************ -->
<servlet>
<servlet-name>session</servlet-name>
<servlet-class>sample.SessionServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>session</servlet-name>
<url-pattern>/session</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
2.2.2 新增 spring-session.xml
最简内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<context:annotation-config />
<!-- RedisHttpSessionConfiguration -->
<bean class="org.springframework.session.data.redis.config.annotation.web.http.RedisHttpSessionConfiguration" />
<!--JedisConnectionFactory -->
<bean class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory" />
</beans>
说明:
- 这里使用 redis 存储,默认是
localhost
,端口号6379
,下一节我们聊聊怎么修改配置
3.启动
mvn tomcat7:run
效果:
redis 服务端显示信息:
表明已经使用了 redis 来
至此,我们今天开头的3个小目标已经完成,我们可以开始新的旅程,各位系好安全带~~
4.附录
4.1 版本说明
spring-session
有这么多版本,我该使用哪个版本? 是越新越好吗? spring-session
依赖的spring版本是多少?
-
spring-session
1.2系列 依赖的是spring4.2.5.RELEASE
-
spring-session
1.1系列 依赖的是spring4.1.6.RELEASE
-
spring-session
1.0系列 依赖的是spring4.1.3.RELEASE
也就是说 spring-session
至少需要 spring 4.1+以上的版本,这里我们使用 spring-session
1.2.2.RELEASE 的版本
下面是完整的 依赖关系
[INFO] --- maven-dependency-plugin:2.10:tree (default-cli) @ feilong-spring-session-example ---
[INFO] com.feilong.incubator:feilong-spring-session-example:war:1.8.9-SNAPSHOT
[INFO] +- org.springframework.session:spring-session:jar:1.2.2.RELEASE:compile
[INFO] | \- commons-logging:commons-logging:jar:1.2:compile
[INFO] +- org.springframework.session:spring-session-data-redis:jar:1.2.2.RELEASE:compile
[INFO] | +- org.apache.commons:commons-pool2:jar:2.4.2:compile
[INFO] | +- org.springframework.data:spring-data-redis:jar:1.7.1.RELEASE:compile
[INFO] | | +- org.springframework.data:spring-data-keyvalue:jar:1.1.1.RELEASE:compile
[INFO] | | | +- org.springframework.data:spring-data-commons:jar:1.12.1.RELEASE:compile
[INFO] | | | \- org.springframework:spring-context:jar:3.2.17.RELEASE:compile
[INFO] | | | \- org.springframework:spring-expression:jar:3.2.17.RELEASE:compile
[INFO] | | +- org.springframework:spring-tx:jar:3.2.17.RELEASE:compile
[INFO] | | | +- org.springframework:spring-beans:jar:3.2.17.RELEASE:compile
[INFO] | | | \- org.springframework:spring-core:jar:3.2.17.RELEASE:compile
[INFO] | | +- org.springframework:spring-oxm:jar:3.2.17.RELEASE:compile
[INFO] | | +- org.springframework:spring-aop:jar:3.2.17.RELEASE:compile
[INFO] | | | \- aopalliance:aopalliance:jar:1.0:compile
[INFO] | | \- org.springframework:spring-context-support:jar:3.2.17.RELEASE:compile
[INFO] | \- redis.clients:jedis:jar:2.8.1:compile
可以看出所依赖的 spring-data-redis
依赖的是 spring 3.2.17.RELEASE
版本 ,这里的关系有点乱
5.参考
--to be continued
相关推荐
赠送jar包:spring-session-data-redis-2.0.4.RELEASE.jar; 赠送原API文档:spring-session-data-redis-2.0.4.RELEASE-javadoc.jar; 赠送源代码:spring-session-data-redis-2.0.4.RELEASE-sources.jar; 赠送...
赠送jar包:spring-session-core-2.0.5.RELEASE.jar; 赠送原API文档:spring-session-core-2.0.5.RELEASE-javadoc.jar; 赠送源代码:spring-session-core-2.0.5.RELEASE-sources.jar; 赠送Maven依赖信息文件:...
赠送jar包:spring-session-data-redis-2.0.4.RELEASE.jar; 赠送原API文档:spring-session-data-redis-2.0.4.RELEASE-javadoc.jar; 赠送源代码:spring-session-data-redis-2.0.4.RELEASE-sources.jar; 赠送...
赠送jar包:spring-session-1.3.5.RELEASE.jar; 赠送原API文档:spring-session-1.3.5.RELEASE-javadoc.jar; 赠送源代码:spring-session-1.3.5.RELEASE-sources.jar; 赠送Maven依赖信息文件:spring-session-...
spring-session+spring依赖jar包,包含spring4.0.2.RELEASE相关jar包和commons-pool2-2.4.2.jar,jedis-2.7.3.jar,spring-data-redis-1.6.2.RELEASE.jar,spring-session-1.1.1.RELEASE.jar
标题中的“Spring-session2整合spring5+redis”指的是在Spring框架的第五个主要版本(Spring 5)中,集成Spring Session 2与Redis数据库来管理Web应用的会话(Session)。Spring Session是一个开源项目,旨在提供一...
commons-pool2-2.3.jar,jedis-2.8.0.jar,spring-data-redis-1.6.0.RELEASE.jar,spring-session-1.1.1.RELEASE.jar,Spring-data-redis(Version 1.6.0.RC1)中文版.pdf
赠送jar包:spring-session-1.3.5.RELEASE.jar; 赠送原API文档:spring-session-1.3.5.RELEASE-javadoc.jar; 赠送源代码:spring-session-1.3.5.RELEASE-sources.jar; 赠送Maven依赖信息文件:spring-session-...
赠送jar包:spring-session-1.3.0.RELEASE.jar; 赠送原API文档:spring-session-1.3.0.RELEASE-javadoc.jar; 赠送源代码:spring-session-1.3.0.RELEASE-sources.jar; 包含翻译后的API文档:spring-session-...
如果没有sessionId就新创建session,如果有sessionId,就去redis中查看是否有此id的记录,如果没有就新建session,如果有,还是新建session,并把redis中此session的相关数据赋值给新建的session,最后保存sessionId...
spring-session-1.2.1 源码spring-session-1.2.1 源码spring-session-1.2.1 源码
包含spring4.0相关jar包和commons-pool2-2.4.2.jar,jedis-2.7.3.jar,spring-data-redis-1.6.2.RELEASE.jar,spring-session-1.1.1.RELEASE.jar
Spring-Session是Spring社区推出的一个项目,它的核心目标是替换传统的基于JSESSIONID的HttpSession,使得Session可以在分布式环境中进行存储和管理。Spring-Session能够透明地与Spring MVC和Spring Boot集成,无需...
赠送jar包:spring-session-core-2.0.5.RELEASE.jar; 赠送原API文档:spring-session-core-2.0.5.RELEASE-javadoc.jar; 赠送源代码:spring-session-core-2.0.5.RELEASE-sources.jar; 赠送Maven依赖信息文件:...
1. **配置Spring-Session**:在Spring Boot项目中,添加spring-session和spring-session-data-redis依赖,并在配置文件中设置Redis的相关连接信息。 2. **启用Spring-Session**:在Spring Boot的主配置类上添加@...
赠送jar包:spring-session-1.3.0.RELEASE.jar 赠送原API文档:spring-session-1.3.0.RELEASE-javadoc.jar 赠送源代码:spring-session-1.3.0.RELEASE-sources.jar 包含翻译后的API文档:spring-session-1.3.0....
为了使用Spring-Session,首先需要在项目中添加相应的Maven依赖。下面展示了两个关键的依赖项: ```xml <groupId>org.springframework.session <artifactId>spring-session-data-redis <version>1.2.1.RELEASE ...
spring-session-1.0.2.RELEASE.jar
jedis-2.7.3.jar,spring-session-1.1.1.RELEASE.jar,spring-data-redis-1.6.2.RELEASE.jar等。。。
Spring Session 是一个开源项目,由 Pivotal Software 开发并维护,它为 Spring 应用程序提供了一种集中管理会话数据的方式,尤其适用于分布式环境。在 1.3.1.RELEASE 版本中,Spring Session 带来了一些关键改进和...