资讯专栏INFORMATION COLUMN

Web应用全栈之旅-Spring篇(一)分布式Session

yy13818512006 / 1151人阅读

摘要:一分布式的实现在微服务架构下,需要支持分布式,分布式可以通过来实现,也可以通过数据库来实现,本文介绍实现。二安装下载地址选择对应的版本安装。进入安装目录启动。站点微信公众号加入知识星球,参与讨论,更多实战代码分享

一、分布式Session的Redis实现

在微服务架构下,需要支持分布式Session,分布式Session可以通过Redis来实现,也可以通过数据库来实现,本文介绍Redis实现。

二、安装Redis

下载地址:https://github.com/MSOpenTech...
选择对应的版本安装。

进入安装目录启动Redis。

三、pom文件
        
            org.springframework.boot
            spring-boot-starter-data-redis
        
        
        
            org.springframework.session
            spring-session-data-redis
        

        
            org.apache.commons
            commons-pool2
        
四、yml配置

yml配置如下:

# Redis服务器地址
spring.redis.host=localhost
# Redis服务器连接端口
spring.redis.port=6379
五、Config配置

config配置如下:

@Configuration
@EnableRedisHttpSession(maxInactiveIntervalInSeconds = 86400 * 30)
public class SessionConfig {

}
六、登陆后设置Session

登陆成功后设置Session信息,代码如下:

@Component
@RestController
public class LoginController {

    @RequestMapping("/login")
    public String login(@RequestBody String userId, HttpSession  session) throws Exception {
        session.setAttribute(Constants.SESSION_USER_ID, userId);
        return "Login success.";
    }
}
七、Session鉴权过滤器

没有成功登陆并设置Session,需要跳转到错误页面, 代码实例如下:

@Configuration
public class SessionFilter extends OncePerRequestFilter {

    @Override
    protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
            throws ServletException, IOException {

        if (isNeedAuth(request)) {
            Object userIdObject = request.getSession().getAttribute(Constants.SESSION_USER_ID);
            if (null == userIdObject) {
                response.sendRedirect("/errorPage");
            }
        }

        filterChain.doFilter(request, response);
    }
}

以上为实现Redis Session的所有步骤,完整实例代码扫码加入微信公众号并回复:webfullstack,获取仓库地址。

end.

站点: http://javashizhan.com/

微信公众号:

加入知识星球,参与讨论,更多实战代码分享!
https://t.zsxq.com/RNzfi2j

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/76051.html

相关文章

  • Web全栈应用之旅-启程

    摘要:但能拷贝图粘贴后不失真通常是收费富文本编辑器才具备的能力。是否支持编程语言高亮,例如按,语言高亮是否支持数学公式等等因此选择了两款富文本编辑器,支持截屏粘贴,当做跟踪系统时这个功能特别有用。 一、Web应用技术栈 在开发Web应用时,通常会使用到以下技术栈: showImg(https://segmentfault.com/img/bVbwceG);对应这些技术栈都已有相应的开源产品...

    longmon 评论0 收藏0
  • Web应用全栈之旅-Spring(二)集成mybatis

    摘要:五中调用以上为集成的所有步骤,完整实例代码扫码加入微信公众号并回复,获取仓库地址。站点微信公众号加入知识星球,参与讨论,更多实战代码分享 一、pom文件 引入mybatis org.mybatis.spring.boot mybatis-spring-boot-starter 2.1.0 ...

    baishancloud 评论0 收藏0
  • Web全栈应用之旅-基础)前后端接口

    摘要:一前后端接口设计前后端接口设计主要考虑以下几点二接口内容接口内容包括鉴权信息,如用于身份识别的。公共信息,例如用户,项目等需要传给后端的公共数据。 一、前后端接口设计 前后端接口设计主要考虑以下几点: showImg(https://segmentfault.com/img/bVbwc4u?w=2095&h=891); 二、接口内容 接口内容包括: 鉴权信息,如用于身份识别的t...

    lindroid 评论0 收藏0
  • Web全栈应用之旅-基础(二)异常设计

    摘要:异常堆栈开发过程中,不可避免的会有未考虑的异常场景,堆栈信息可以帮助快速解决故障。异常日志有时候需要借助异常堆栈信息定位错误原因,而用户未必能记得和反馈错误堆栈信息,此时要么是自行复现错误来定位,要么是通过历史错误日志定位。 一、异常设计 异常设计主要考虑以下方面: showImg(https://segmentfault.com/img/bVbwdua?w=1624&h=867);...

    MudOnTire 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<