Spring Boot 集成 Spring Session,并使用 MongoDB 存储 session 信息

本贴最后更新于 2101 天前,其中的信息可能已经时移世改

1.原料

apache-maven   3.9.X

Oracle-jdk   1.8.X

Eclipse || IDEA

MongoDB   3.6.X

2.配置

maven -- pom.xml

	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.0.3.RELEASE</version>
	</parent>
	<!-- Add typical dependencies for a web application -->
	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.session</groupId>
			<artifactId>spring-session-data-mongodb</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-data-mongodb</artifactId>
		</dependency>
	</dependencies>

	<!-- Package as an executable jar -->
	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

启动器和测试控制器

	  import javax.servlet.http.HttpSession;
	  import org.springframework.boot.SpringApplication;
	  import org.springframework.boot.autoconfigure.SpringBootApplication;
	  import org.springframework.session.data.mongo.config.annotation.web.http.EnableMongoHttpSession;
	  import org.springframework.web.bind.annotation.RequestMapping;
	  import org.springframework.web.bind.annotation.RestController;

	  @SpringBootApplication
	  @EnableMongoHttpSession
	  @RestController
	  public class Application {

		  public static void main(String[] args) throws Exception {
			  SpringApplication.run(Application.class, args);
		  }

		  @RequestMapping("/set")
		  public String setSession(HttpSession session, String sss) {
			  session.setAttribute("hello", sss);
			  return "ok!";
		  }

		  @RequestMapping("/get")
		  public String getSession(HttpSession session) {
			  return session.getAttribute("hello").toString();
		  }

	  }

application.properties

	  ### 节点1
		  spring.session.store-type=MongoDB
		  spring.session.jdbc.table-name=SESSIONS
		  server.servlet.session.timeout=30
		  spring.data.mongodb.host=localhost
		  spring.data.mongodb.port=27017
		  spring.data.mongodb.database=spring-session
		  server.port=8080
	  ### 节点2
		  spring.session.store-type=MongoDB
		  spring.session.jdbc.table-name=SESSIONS
		  server.servlet.session.timeout=30
		  spring.data.mongodb.host=localhost
		  spring.data.mongodb.port=27017
		  spring.data.mongodb.database=spring-session
		  server.port=8081

3.启动和验证

1. 分别启动节点 1 和节点 2

2. 验证

选取任意节点进行设值:

>### ![imagepng](http://blog.lesswork.cn/solo/upload/c5f5eaab2c634cfba4dfb05be202175d_image.png) 

查看:

imagepng
 


![imagepng](http://blog.lesswork.cn/solo/upload/c009ab319a194e4aa0839f05b7749171_image.png)

4.注意事项

@EnableMongoHttpSession    

此注解为开启 MongoDB 存储 session 的专用注解,千万不要搞混

mongo 依赖项

  <dependency>
	  <groupId>org.springframework.boot</groupId>
	  <artifactId>spring-boot-starter-data-mongodb</artifactId>
  </dependency>

此依赖必需,否则项目无法启动




YouY Blog —— 专心做你的烂笔头。访问主页

  • Spring

    Spring 是一个开源框架,是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 JavaEE 应用程序开发提供集成的框架。

    941 引用 • 1458 回帖 • 153 关注
  • 微服务

    微服务架构是一种架构模式,它提倡将单一应用划分成一组小的服务。服务之间互相协调,互相配合,为用户提供最终价值。每个服务运行在独立的进程中。服务于服务之间才用轻量级的通信机制互相沟通。每个服务都围绕着具体业务构建,能够被独立的部署。

    96 引用 • 155 回帖
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3168 引用 • 8207 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...