• SpringBoot整合redis/解决session共享问题


    SpringBoot整合redis

    1、导入依赖, redis相关依赖

    <!-- 配置使用redis启动器 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-redis</artifactId>
    </dependency>

    2、 在SpringBoot的配置文件中配置redis相关信息:(开启一个redis,ip端口一致

    spring:
      #redis相关的信息
      redis: 
        host: 127.0.0.1
        port: 6379

    3、给entity实体类实现Serializable接口

    操作redis: SpringBoot创建RedisTemplate的bean, 4、在service 使用RedisTemplate操作redis

    测试:

    @Service
    public class EmployeeServiceImpl implements IEmployeeService {
        @Autowired
        private EmployeeMapper empMapper;
        
        @Autowired
        private RedisTemplate redisTemplate;
    
        @Override
        public Employee queryOne(int empno) throws Exception {
            String key = "emp_"+empno;
            if(redisTemplate.hasKey(key)) {
                return (Employee)redisTemplate.opsForValue().get(key);
            }
            Employee emp = empMapper.queryById(empno);
            redisTemplate.opsForValue().set(key, emp, 7, TimeUnit.DAYS);
            return emp;
        }

    SpringBoot 解决session共享问题

    Tomcat集群 --> nginx 

    1、添加Session共享的依赖

    <!-- 配置使用redis启动器 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-redis</artifactId>
    </dependency>  
    <!-- session共享的依赖 -->
    <dependency>
        <groupId>org.springframework.session</groupId>
        <artifactId>spring-session-data-redis</artifactId>
    </dependency>

    测试:

    1、首先关闭热部署

    2、启动一个tomcat

    #端口
    server:
      port: 8888

    更改端口在启动一个tomcat

    #端口
    server:
      port: 9999

    编写一个测试TestSessionController.java,返回json页面数据

    //@Controller
    //@ResponseBody    //表示这个Controller类所有的方法响应的数据
    @RestController  //@Controller 与@ResponseBody 组合注解
    //如果json, 响应给前端的数据乱码,  添加这个: produces = "application/json;charset=utf-8"
    @RequestMapping(value="session",produces = "application/json;charset=utf-8")
    public class TestSessionController {
        @Value("${server.port}")
        private Integer port;
    @GetMapping(value = "set" ) public String set(HttpSession session) throws Exception { session.setAttribute("name", "张三"); return "端口号为:"+port+",Tomcat服务器处理了您的请求"; } @GetMapping(value = "get" ) public String get(HttpSession session) throws Exception { return "端口号为:"+port+",Tomcat服务器处理了您的请求,获取的到数据:"+session.getAttribute("name"); }

    开启nginx 。

    注意:  使用redis,  先关闭Tomcat, 再关闭redis服务器

  • 相关阅读:
    超市帐单系统
    JavaOOP
    拦截器的工作原理是什么?
    struts2
    500错误
    idea添加struts框架后报错
    2019春第九周作业
    2019春第八周作业
    2019春第七周作业
    2019春第六周作业
  • 原文地址:https://www.cnblogs.com/64Byte/p/13262818.html
Copyright © 2020-2023  润新知