当前位置: 首页 > news >正文

SpringSession微服务

一.在linux中确保启动起来redis和nacos

依赖记得别放<dependencyManagement></dependencyManagement>这个标签去了

1.首先查看已经启动的服务

 docker ps

查看有没有安装redis和nacos

 2.启动redis和nacos

发现没有启动redis和nacos,我们先来启动它。,你们的指令后面的名字得是你们的哈。

docker start nacos

docker start redis-6379

二.新建idea的maven项目

 

 

2.导入依赖

<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.7.RELEASE</version></parent><properties><java.version>1.8</java.version><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><spring-boot.version>2.6.13</spring-boot.version><jwt.version>0.7.0</jwt.version><fastjson.version>1.2.60</fastjson.version><spring-cloud-alibaba.version>2.0.3.RELEASE</spring-cloud-alibaba.version><spring-cloud.version>Finchley.SR2</spring-cloud.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>compile</scope></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><!--json--><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>${fastjson.version}</version><scope>compile</scope></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>${spring-cloud-alibaba.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><classifier>exec</classifier></configuration></plugin></plugins></build>

3.创建控制类

package com.jr.controller;import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import javax.servlet.http.HttpSession;@RestController
@RequestMapping("/demo")
public class DemoController {@GetMappingpublic String show(HttpSession session){return session.getId();}
}

4.创建启动类 

package com.jr;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class SpringBootMain {public static void main(String[] args) {SpringApplication.run(SpringBootMain.class,args);}
}

 

5.创建application.yml

在resources下创建application.yml文件

server:port: 100

6.再来一个一模一样的项目

 

 此时有两个不同的项目

7.idea中打开第二个项目

然后要改它的application.yml和pom.xml的有些地方。

 7.1第二个项目(SpringSessiondemo1)的application.yml

server:port: 200

7.2 第二个项目(SpringSessiondemo1)的pom.xml

把artifactId这里改成你第二个项目的名字

  <groupId>com.jr</groupId><artifactId>SpringSessiondemo1</artifactId><version>1.0-SNAPSHOT</version>

8.同时启动两个项目 

 在自己的浏览器上的地址栏访问自己的项目。

第一个项目:

第二个项目;

两个项目的sessionID不一致。  

二.两个项目与nacos建立联系

1.两个项目都在pom.xml文件里添加下面的依赖

<dependency><groupId>org.springframework.session</groupId><artifactId>spring-session-data-redis</artifactId>
</dependency>
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

2.两个项目都在application.yml里添加下面的代码

spring:session:store-type: redis

 第一个项目:

第二个项目:

 

3.两个项目都创建application.properties文件

在resources下创建application.properties文件

两个项目的application.properties都添加以下代码

spring.application.name=sessiondemo

 4.登录nacos网站

这里可以参考我的另一个博客,因为这有点复杂

在idea使用nacos微服务-CSDN博客

5.配置中心

 host是你自己的虚拟机ip

spring:
redis:
host: 192.168.146.39
port: 6379
password: 123456

 

 6.两个项目都创建bootstrap.yml文件

两个项目的bootstrap.yml文件都添加以下代码。

spring:cloud:nacos:discovery:server-addr: 192.168.146.39:8848config:server-addr: 192.168.146.39:8848file-extension: yamlnamespace: 8920c585-274d-477f-b55f-9324be8da9bdshared-configs:- data-id: dz14redisssesiton.yamlgroup: DEFAULT_GROUPinetutils:preferred-networks: 192.168.116

 7.两个项目启动类都添加注解@EnableRedisHttpSession

 

 8.新建SessionConfig配置类

需要创建一个config目录,新建SessionConfig配置类,修改domain作用域。

package com.jr.config;import org.springframework.context.annotation.Bean;
import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.RedisSerializer;
import org.springframework.session.web.http.CookieSerializer;
import org.springframework.session.web.http.DefaultCookieSerializer;public class SessionConfig {@Beanpublic CookieSerializer cookieSerializer() {DefaultCookieSerializer serializer = new DefaultCookieSerializer();serializer.setCookieName("JSESSIONID");serializer.setCookiePath("/");serializer.setDomainNamePattern("^.+?\\.(\\w+\\.[a-z]+)$");return serializer;}@Beanpublic RedisSerializer<Object> redisSerializer() {return new GenericJackson2JsonRedisSerializer();}
}

 

9.再到nacos网站 

 

10.再次启动我们的idea项目 

两个变成一样的了。

三.我的idea项目结构

今天内容到此结束,下面是我idea项目的结构,希望能帮到大家。

第一个项目;

第二个项目:

http://www.lryc.cn/news/451227.html

相关文章:

  • 强化学习:通过试错学习最优策略---示例:使用Q-Learning解决迷宫问题
  • OpenGL ES 纹理(7)
  • 【C#】CacheManager:高效的 .NET 缓存管理库
  • 【数学分析笔记】第4章第2节 导数的意义和性质(2)
  • 深度学习:迁移学习
  • Footprint Growthly Quest 工具:赋能 Telegram 社区实现 Web3 飞速增长
  • 进入xwindows后挂起键盘鼠标没有响应@FreeBSD
  • CentOS7.9 snmptrapd更改162端口
  • 模糊测试SFuzz亮相第32届中国国际信息通信展览会
  • CMake学习
  • 书生·浦语大模型全链路开源开放体系
  • PHP安装swoole扩展无效,如何将文件上传至Docker容器
  • Web3.0 应用项目
  • Linux 学习笔记(十六)—— 重定向与缓冲区
  • 828华为云征文|WordPress部署
  • 华为开源自研AI框架昇思MindSpore应用案例:计算高效的卷积模型ShuffleNet
  • 《C++ 小游戏:简易飞机大战游戏的实现》
  • SpringCloud源码:服务端分析(二)- EurekaServer分析
  • 插槽slot在vue中的使用
  • 针对考研的C语言学习(定制化快速掌握重点2)
  • [C++][IO流][流输入输出][截断理解]详细讲解
  • 阿里云部署1Panel(失败版)
  • 九、设备的分配与回收
  • 单片机的原理及应用
  • Python数据分析篇--NumPy--入门
  • OJ在线评测系统 后端 判题机模块预开发 架构分析 使用工厂模式搭建
  • linux 目录文件夹操作
  • (Linux驱动学习 - 4).Linux 下 DHT11 温湿度传感器驱动编写
  • 前端登录页面验证码
  • 【鸿蒙】HarmonyOS NEXT应用开发快速入门教程之布局篇(上)