【JavaEE进阶】——第八节.SpringBoot统一功能处理

这篇具有很好参考价值的文章主要介绍了【JavaEE进阶】——第八节.SpringBoot统一功能处理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

作者简介:大家好,我是未央;

博客首页:未央.303

系列专栏:JavaEE进阶

每日一句:人的一生,可以有所作为的时机只有一次,那就是现在!!!

文章目录

前言

一、统一用户的登录

1.1 Spring AOP 实现用户统一登录验证

1.2Spring拦截器实现统一用户的登录验证

1.3 实例演示(通过url访问controller层的方法)

二、统一异常处理

三、统一数据格式返回

3.1 统一数据返回格式的优点

3.2 统一数据返回格式的实现

四、总结

总结


【JavaEE进阶】——第八节.SpringBoot统一功能处理


前言


一、统一用户的登录

在学习Spring AOP之前,用户登录权限的验证是由每个方法中自己验证。

1.1 Spring AOP 实现用户统一登录验证

而学习了Spring AOP之后,可以通过Spring AOP的前置通知或环绕通知来实现,具体实现代码如下:

【JavaEE进阶】——第八节.SpringBoot统一功能处理

但如果在以上Spring AOP的切面中实现用户权限效验的功能,有以下两个问题: 

  • 1.没办法获取到HttpSession对象。
  • 2.我们要对一部分方法进行拦截,而另一部分方法不拦截,如注册方法和登录方法是不拦截的,这样的话排除方法的规则很难定义,甚至没办法定义。

要解决上述问题,就需要使用下边的Spring拦截器:

对于以上问题Spring中提供了具体的实现拦截器:HandlerInterceptor,拦截器的实现分为以下两个步骤:

1、创建自定义拦截器,实现 HandlerInterceptor 接口的perHandle(执行具体方法之前的预处理)方法。

2、将自定义拦截器加入 WebMvcConfiger的 addInterceptors方法中


1.2Spring拦截器实现统一用户的登录验证

1、自定义拦截器,实现HandlerInterceptor,重新preHandle(返回boolean方法)

【JavaEE进阶】——第八节.SpringBoot统一功能处理


2、配置拦截规则 

【JavaEE进阶】——第八节.SpringBoot统一功能处理


1.3 实例演示(通过url访问controller层的方法)

【JavaEE进阶】——第八节.SpringBoot统一功能处理


【JavaEE进阶】——第八节.SpringBoot统一功能处理

二、统一异常处理

为什么要对异常进行统一处理呢?

【JavaEE进阶】——第八节.SpringBoot统一功能处理

 上面我们的controller层的代码明显是有问题的,我们用浏览器访问一下该方法:

【JavaEE进阶】——第八节.SpringBoot统一功能处理

 可以看到,我们什么都没有返回给前端——》这个时候前端同学完全都不知道发生什么?

所有我们有必要对异常进行统一处理,以便不管怎样都有返回值。

【JavaEE进阶】——第八节.SpringBoot统一功能处理

【JavaEE进阶】——第八节.SpringBoot统一功能处理

 🔔我们的异常拦截是针对整个项目来进行异常拦截的,不用具体配置哪些类需要异常拦截 


【JavaEE进阶】——第八节.SpringBoot统一功能处理

三、统一数据格式返回

3.1 统一数据返回格式的优点

  • 方便前端程序员更好的接受和解析后端数据接口返回的数据。
  • 降低前端程序员和后端程序员的沟通成本,按照某个格式实现就可以了,因为所有接口都是这样返回的。
  • 有利于项目统一数据的维护和修改。
  • 有利于后端技术部门的统一规范的标准制定,不会出现稀奇古怪的返回内容。

3.2 统一数据返回格式的实现

统一的数据返回格式可以使用@ControllerAdvice+ResponseBodyAdvice的方式实现,具体实现代码如下:

【JavaEE进阶】——第八节.SpringBoot统一功能处理


【JavaEE进阶】——第八节.SpringBoot统一功能处理

四、总结

  • 统一用户登录权限的效验使用WebMvcConfigurer+HandlerInterceptor来实现
  • 统一异常处理使用@ControllerAdvice+@ExceptionHandler来实现
  • 统一返回值处理使用@ControllerAdvice+ResponseBodyAdvice来处理

总结

【JavaEE进阶】——第八节.SpringBoot统一功能处理文章来源地址https://www.toymoban.com/news/detail-465827.html

到了这里,关于【JavaEE进阶】——第八节.SpringBoot统一功能处理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SpringBoot 统一功能处理

    登录、注册页面不拦截,其他页面都拦截 当登录成功写入 session 之后,拦截的页面可正常访问 调用顺序: 正常情况下,程序会在调用 Controller 之前进行相应的业务处理(我们在切面中定义的事务),业务通过后,才会调用Controller 层,然后就是Controller - Serrvice - Mapper - 数据

    2024年01月24日
    浏览(35)
  • SpringBoot—统一功能处理

    利用 AOP 的思想对一些特定的功能进行统一的处理, 包括 使用拦截器实现用户登录权限的统一校验 统一异常的处理 统一数据格式的返回 通过一级路由调用多种方法, 需要保证这些方法的请求类型各不相同(GET, POST, PUT…) 使用 Spring AOP 可以实现统一拦截, 但 Spring AOP 的使用较为

    2024年02月13日
    浏览(33)
  • 【Spring】SpringBoot 统一功能处理

    在日常使用 Spring 框架进行开发的时候,对于一些板块来说,可能需要实现一个相同的功能,这个功能可以是验证你的登录信息,也可以是其他的,但是由于各个板块实现这个功能的代码逻辑都是相同的,如果一个板块一个板块进行添加的话,开发效率就会很低,所以 Spring

    2024年01月18日
    浏览(40)
  • SpringBoot统一功能处理(拦截器)

    1.1自定义拦截器 写一个类去实现 HandlerInterceptor接口 表示当前类是一个拦截器,再 重写HandlerInterceptor接口中的方法 , preHandle 为在方法 执行前拦截 ,postHandle为方法执行中拦截,afterCompletion为方法执行中拦截.需要在什么时候拦截就重写什么方法 2.1.配置拦截规则 实现 WebMvcConfigur

    2024年02月14日
    浏览(40)
  • 第八节 学生管理系统 (阶段案例)

    管理系统,主要任务就是使用计算机对学生的各种信息进行日常管理,如: 添加 删除 修改 查询 退出系统 程序设计思路 打印 “学生管理系统” 的功能菜单,提示用户选择功能序号; print_menu() 打印函数 1.3.1 输出提示界面 程序的功能界面提示信息的作用就是,让用户根据提示

    2024年02月16日
    浏览(41)
  • 【JavaEE】Spring全家桶实现AOP-统一处理

    【JavaEE】AOP(2) 在前面的Spring AOP的学习之中,Spring AOP去实现AOP,虽然比较灵活,可以实现很多想法,但是也有一些现实的问题: 没办法获取到HttpRequest,一些功能难以实现 进而无法获取HttpSession对象,这样登录校验功能就无法实现 我们要对⼀部分方法进行拦截,而另⼀部

    2024年02月11日
    浏览(39)
  • SpringMVC框架面试专题(初级-中级)-第八节

    欢迎大家一起探讨~如果可以帮到大家请为我点赞关注哦~后续会持续更新 问题: 1.Spring MVC框架中的MyBatis集成是什么?请举例说明如何集成MyBatis。 解析: Spring MVC框架中的MyBatis集成是指通过Spring框架将MyBatis框架集成到Spring MVC应用程序中,从而实现数据访问层和Web层的无缝

    2024年02月07日
    浏览(32)
  • Vue2第八节 收集表单数据

    (1)文本类型/密码类型 v-model收集的是value值     用户输入的就是value值 (2)number类型:限制输入的只能是数字  (3)radio类型     v-model收集的是value值,需要手动给标签配置value值     如果要设置默认选中,在data中配置要选中的数据即可    (4)checkBox类型    ① 如果

    2024年02月15日
    浏览(40)
  • [北大肖臻-区块链技术与应用笔记]第八节课——BTC 脚本

    比特币系统中使用的脚本语言很简单, 唯一能访问的内存空间就是一个栈 ,这点和通用脚本语言的区别很大。 这个交易有一个输入和两个输出,其中一个输出已经被花出去了,另一个没有被花出去。 输入脚本 输入脚本包含两个操作,分别将两个很长的数压入栈中。 输出脚

    2024年01月21日
    浏览(68)
  • [北大肖臻-区块链技术与应用笔记]第八节课——BTC 分叉

    state fork 如果两个节点差不多同时挖到一个区块,这两个区块都是挂在当前的区块上的,不同节点先收到的区块不同,就会各自沿着先收到的区块往下扩展,这种时候就会出现临时性的分叉,称为 state fork ,即由于对区块链当前的状态有意见分歧而产生的分叉。 分叉攻击(

    2024年02月08日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包