Spring Boot+JWT+Shiro+MyBatisPlus 实现 RESTful 快速开发后端脚手架!
推荐关注
扫码关注“后端架构师”,选择“星标”公众号
重磅干货,第一时间送达!
责编:架构君 | 作者:我叫刘半仙,来源:OSC社区
责编:架构君 | 作者:我叫刘半仙,来源:OSC社区
上一篇好文:马斯克认错:裁掉他们是我最大的错误,但黑粉们却没能笑太久...
大家好,我是后端架构师。
前几天,有不少人问我,有没有基于 SpringBoot 的脚手架项目。今天我就推荐一个基本的框架脚手架,特别是学会使用 jwt + shiro 的权限组合!其实有了 SpringBoot 后,项目搭建的难度一降再降,可还是有人想偷懒,就怕你几年后会后悔!
一、背景
前后端分离已经成为互联网项目开发标准,它会为以后的大型分布式架构打下基础。SpringBoot 使编码配置部署都变得简单,越来越多的互联网公司已经选择 SpringBoot 作为微服务的入门级微框架。
Mybatis-Plus 是一个 Mybatis 的增强工具,有代码生成器,并且提供了类似 hibernate 的单表 CRUD 操作,又保留了 mybatis 的特性支持定制化 SQL。
Apache Shiro 是一款强大易用的 Java 安全框架,Java 官方推荐使用 Shiro,它比 Spring Security 更简单易用,Spring 自己的系列 Spring side4 也把权限扩建换成 Shiro 了。
现在 API 越来越流行,如何安全保护这些 API?JSON Web Tokens(JWT) 能提供基于 JSON 格式的安全认证。JWT 可以跨不同语言,自带身份信息,并且非常容易传递。
二、项目特性
自定义 @Log 注解自动记录日志到数据库。
自定义 @Pass 注解接口不用进行认证身份。
使用 JSONObject 统一获取 body 请求参数,减少实体类的数量。完成自定义 @ValidationParam 注解验证请求参数是否为空。
使用 bcrypt 算法加密密码,著名代码托管网站 Github 和美国军方防火墙同样采用此算法,靠 bcrypt 算法会成功保住密码强度不算很高的大部分账户。
搭配 Shiro 注解配置权限,高度灵活,提供按钮级别的权限控制,后端接口只验证权限,不看角色。用自定义 @CurrentUser 注解获取当前登录用户,Controlle 层统一异常处理:
用 SpringAOP 切面编程进行声明式事务,过滤请求参数,防止 XSS 攻击。
使用 POST 请求登录返回 token 和权限信息 (service 层增删改方法命名规范会自动加上事物),保证请求无状态,返回实体如果属性为空不显示。
三、程序逻辑
填写用户名密码用 POST 请求访问 / login 接口,返回 token 令牌等信息,失败则直接跳转 401 错误页面。微信搜索公众号:Java后端编程,回复:java 领取资料 。
2. 在之后需要验证身份的请求的 Headers 中添加 Authorization 和登录时返回的 token 令牌。
服务端进行 token 认证,失败跳转 401 页面。
用 JWT 做认证(登录),Shiro 做授权。
四、运行项目
项目结构:
通过 git 下载源码,本项目基于 JDK1.8 采用 Maven 项目管理,模块化,导入 IDE 时直接选定 liugh-parent 的 pom 导入 创建数据库 liugh,数据库编码为 UTF-8,执行 liugh.sql 文件,初始化数据 修改 application-dev.properties,更新 MySQL 账号和密码 Eclipse、IDEA 运行 SpringbootApplication.java,则可启动项目。或在 liugh-parent 目录下运行命令 mvn clean package,然后在 liugh-web/target 目录下运行 java -jar liugh-web.jar 命令 另外,搜索公众号Linux就该这样学后台回复“猴子”,获取一份惊喜礼包。 启动一个 redis 服务 访问登录接口:localhost:8081/api/login
账号密码:13888888888/123456 获取 token 访问其他接口 注意!!!!! 访问的接口 url 统一会加上 / api/v1; 编译器请安装 lombok 插件, 不然会报红
运行截图:
这个项目注释完整,并且自定义了启动图案~
GitHub 地址:github.com/qq53182347/liugh-parent
上一篇好文:马斯克认错:裁掉他们是我最大的错误,但黑粉们却没能笑太久...
大家好,我是后端架构师。
前几天,有不少人问我,有没有基于 SpringBoot 的脚手架项目。今天我就推荐一个基本的框架脚手架,特别是学会使用 jwt + shiro 的权限组合!其实有了 SpringBoot 后,项目搭建的难度一降再降,可还是有人想偷懒,就怕你几年后会后悔!
一、背景
前后端分离已经成为互联网项目开发标准,它会为以后的大型分布式架构打下基础。SpringBoot 使编码配置部署都变得简单,越来越多的互联网公司已经选择 SpringBoot 作为微服务的入门级微框架。
Mybatis-Plus 是一个 Mybatis 的增强工具,有代码生成器,并且提供了类似 hibernate 的单表 CRUD 操作,又保留了 mybatis 的特性支持定制化 SQL。
Apache Shiro 是一款强大易用的 Java 安全框架,Java 官方推荐使用 Shiro,它比 Spring Security 更简单易用,Spring 自己的系列 Spring side4 也把权限扩建换成 Shiro 了。
现在 API 越来越流行,如何安全保护这些 API?JSON Web Tokens(JWT) 能提供基于 JSON 格式的安全认证。JWT 可以跨不同语言,自带身份信息,并且非常容易传递。
二、项目特性
自定义 @Log 注解自动记录日志到数据库。
自定义 @Pass 注解接口不用进行认证身份。
使用 JSONObject 统一获取 body 请求参数,减少实体类的数量。完成自定义 @ValidationParam 注解验证请求参数是否为空。
使用 bcrypt 算法加密密码,著名代码托管网站 Github 和美国军方防火墙同样采用此算法,靠 bcrypt 算法会成功保住密码强度不算很高的大部分账户。
搭配 Shiro 注解配置权限,高度灵活,提供按钮级别的权限控制,后端接口只验证权限,不看角色。用自定义 @CurrentUser 注解获取当前登录用户,Controlle 层统一异常处理:
用 SpringAOP 切面编程进行声明式事务,过滤请求参数,防止 XSS 攻击。
使用 POST 请求登录返回 token 和权限信息 (service 层增删改方法命名规范会自动加上事物),保证请求无状态,返回实体如果属性为空不显示。
三、程序逻辑
填写用户名密码用 POST 请求访问 / login 接口,返回 token 令牌等信息,失败则直接跳转 401 错误页面。微信搜索公众号:Java后端编程,回复:java 领取资料 。
2. 在之后需要验证身份的请求的 Headers 中添加 Authorization 和登录时返回的 token 令牌。
服务端进行 token 认证,失败跳转 401 页面。
用 JWT 做认证(登录),Shiro 做授权。
四、运行项目
项目结构:
通过 git 下载源码,本项目基于 JDK1.8 采用 Maven 项目管理,模块化,导入 IDE 时直接选定 liugh-parent 的 pom 导入 创建数据库 liugh,数据库编码为 UTF-8,执行 liugh.sql 文件,初始化数据 修改 application-dev.properties,更新 MySQL 账号和密码 Eclipse、IDEA 运行 SpringbootApplication.java,则可启动项目。或在 liugh-parent 目录下运行命令 mvn clean package,然后在 liugh-web/target 目录下运行 java -jar liugh-web.jar 命令 另外,搜索公众号Linux就该这样学后台回复“猴子”,获取一份惊喜礼包。 启动一个 redis 服务 访问登录接口:localhost:8081/api/login 账号密码:13888888888/123456 获取 token 访问其他接口 注意!!!!! 访问的接口 url 统一会加上 / api/v1; 编译器请安装 lombok 插件, 不然会报红
运行截图:
这个项目注释完整,并且自定义了启动图案~
GitHub 地址:github.com/qq53182347/liugh-parent
欢迎有需要的同学试试,如果本文对您有帮助,也请帮忙点个 赞 + 在看 啦!❤️
在 GitHub猿 还有更多优质项目系统学习资源,欢迎分享给其他同学吧!
PS:如果觉得我的分享不错,欢迎大家随手点赞、转发、在看。
最后给读者整理了一份BAT大厂面试真题,需要的可扫码加微信备注:“面试”获取。
欢迎有需要的同学试试,如果本文对您有帮助,也请帮忙点个 赞 + 在看 啦!❤️
在 GitHub猿 还有更多优质项目系统学习资源,欢迎分享给其他同学吧!
PS:如果觉得我的分享不错,欢迎大家随手点赞、转发、在看。
最后给读者整理了一份BAT大厂面试真题,需要的可扫码加微信备注:“面试”获取。
版权申明:内容来源网络,版权归原创者所有。除非无法确认,我们都会标明作者及出处,如有侵权烦请告知,我们会立即删除并表示歉意。谢谢!
版权申明:内容来源网络,版权归原创者所有。除非无法确认,我们都会标明作者及出处,如有侵权烦请告知,我们会立即删除并表示歉意。谢谢!
END
最近面试BAT,整理一份面试资料《Java面试BAT通关手册》,覆盖了Java核心技术、JVM、Java并发、SSM、微服务、数据库、数据结构等等。在这里,我为大家准备了一份2021年最新最全BAT等大厂Java面试经验总结。
别找了,想获取史上最全的Java大厂面试题学习资料
扫下方二维码回复「面试」就好了
历史好文:
基于SpringBoot 的CMS系统,拿去开发企业官网真香
一款数据可视化分析平台,自由制作任何您想要的数据看板,支持接入SQL、CSV、Excel、HTTP接口、JSON等多种数据源!
快速搭建自己的物联网平台,支持数据流转、数据可视化、报警中心等模块!
世界上最快的内存数据库横空出世,比 Redis 快 25 倍,Star 数飙升,杀疯了!
Docker + IntelliJ IDEA,助你提升 10 倍生产力!
扫码关注“后端架构师”,选择“星标”公众号
别找了,想获取史上最全的Java大厂面试题学习资料
扫下方二维码回复「面试」就好了
历史好文:
基于SpringBoot 的CMS系统,拿去开发企业官网真香
一款数据可视化分析平台,自由制作任何您想要的数据看板,支持接入SQL、CSV、Excel、HTTP接口、JSON等多种数据源!
快速搭建自己的物联网平台,支持数据流转、数据可视化、报警中心等模块!
世界上最快的内存数据库横空出世,比 Redis 快 25 倍,Star 数飙升,杀疯了!
Docker + IntelliJ IDEA,助你提升 10 倍生产力!
扫码关注“后端架构师”,选择“星标”公众号