热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

基于脚手架如何搞定SpringBoot后端管理项目

基于脚手架如何搞定SpringBoot后端管理项目,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找

基于脚手架如何搞定 SpringBoot 后端管理项目,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

前几天,有不少人问我,有没有基于 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 可以跨不同语言,自带身份信息,并且非常容易传递。

二、项目特性

  1. 自定义 @Log 注解自动记录日志到数据库。

  2. 自定义 @Pass 注解接口不用进行认证身份。

  3. 使用 JSONObject 统一获取 body 请求参数,减少实体类的数量。完成自定义 @ValidationParam 注解验证请求参数是否为空。

基于脚手架如何搞定 SpringBoot 后端管理项目

  1. 使用 bcrypt 算法加密密码,著名代码托管网站 Github 和美国军方防火墙同样采用此算法,靠 bcrypt 算法会成功保住密码强度不算很高的大部分账户。

  2. 搭配 Shiro 注解配置权限,高度灵活,提供按钮级别的权限控制,后端接口只验证权限,不看角色。用自定义 @CurrentUser 注解获取当前登录用户,Controlle 层统一异常处理:

基于脚手架如何搞定 SpringBoot 后端管理项目

  1. 用 SpringAOP 切面编程进行声明式事务,过滤请求参数,防止 XSS 攻击。

  2. 使用 POST 请求登录返回 token 和权限信息 (service 层增删改方法命名规范会自动加上事物),保证请求无状态,返回实体如果属性为空不显示。

基于脚手架如何搞定 SpringBoot 后端管理项目

三、程序逻辑

  1. 填写用户名密码用 POST 请求访问 / login 接口,返回 token 令牌等信息,失败则直接跳转 401 错误页面。

  2. 在之后需要验证身份的请求的 Headers 中添加 Authorization 和登录时返回的 token 令牌。

  3. 服务端进行 token 认证,失败跳转 401 页面。

  4. 用 JWT 做认证(登录),Shiro 做授权。

四、运行项目

项目结构:

基于脚手架如何搞定 SpringBoot 后端管理项目

  • 通过 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 命令

  • 启动一个 redis 服务

  • 访问登录接口:localhost:8081/api/login

  • 账号密码:13888888888/123456

  • 获取 token 访问其他接口

  • 注意!!!!! 访问的接口 url 统一会加上 / api/v1; 编译器请安装 lombok 插件, 不然会报红

运行截图:

基于脚手架如何搞定 SpringBoot 后端管理项目

这个项目注释完整,并且自定义了启动图案~

关于基于脚手架如何搞定 SpringBoot 后端管理项目问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程笔记行业资讯频道了解更多相关知识。


推荐阅读
  • 本文深入探讨了ASP.NET中ViewState、Cookie和Session三种状态管理技术的区别与应用场景。ViewState主要用于保存页面控件的状态信息,确保在多次往返服务器过程中数据的一致性;Cookie则存储在客户端,适用于保存少量用户偏好设置等非敏感信息;而Session则在服务器端存储数据,适合处理需要跨页面保持的数据。文章详细分析了这三种技术的工作原理及其优缺点,并提供了实际应用中的最佳实践建议。 ... [详细]
  • 本文推荐了六款高效的Java Web应用开发工具,并详细介绍了它们的实用功能。其中,分布式敏捷开发系统架构“zheng”项目,基于Spring、Spring MVC和MyBatis技术栈,提供了完整的分布式敏捷开发解决方案,支持快速构建高性能的企业级应用。此外,该工具还集成了多种中间件和服务,进一步提升了开发效率和系统的可维护性。 ... [详细]
  • 本文深入解析了 Apache 配置文件 `httpd.conf` 和 `.htaccess` 的优化方法,探讨了如何通过合理配置提升服务器性能和安全性。文章详细介绍了这两个文件的关键参数及其作用,并提供了实际应用中的最佳实践,帮助读者更好地理解和运用 Apache 配置。 ... [详细]
  • 在Linux系统中,MySQL的用户权限管理是运维人员必须掌握的关键技能之一。本文详细介绍了MySQL用户和权限管理的相关概念,包括MySQL用户的概念及其与VSFTPD虚拟用户的相似性,以及密码管理的重要性。此外,还深入探讨了如何通过命令行工具和配置文件进行用户权限的设置和调整,确保系统的安全性和稳定性。 ... [详细]
  • Kali Linux 渗透测试实战指南:第24章 客户端安全威胁分析与防御策略
    客户端安全威胁分析与防御策略主要探讨了终端设备(如计算机、平板电脑和移动设备)在使用互联网时可能面临的各种安全威胁。本章详细介绍了这些设备如何作为信息和服务的提供者或接收者,以及它们在与服务器等其他系统交互过程中可能遇到的安全风险,并提出了有效的防御措施。 ... [详细]
  • Norton Partition Magic 中 PHP 函数 error_reporting(E_ALL ^ E_NOTICE) 的详细解析与应用
    在 Windows 环境下,通过具体示例分析了 `Norton Partition Magic` 中 `PHP` 函数 `error_reporting(E_ALL ^ E_NOTICE)` 的详细解析与应用。该函数用于控制错误报告级别,例如在从 PHP 4.3.0 升级到 4.3.1 后,程序出现多处错误的原因及解决方法。本文深入探讨了错误报告配置对程序稳定性的影响,并提供了实用的调试技巧。 ... [详细]
  • Python与R语言在功能和应用场景上各有优势。尽管R语言在统计分析和数据可视化方面具有更强的专业性,但Python作为一种通用编程语言,适用于更广泛的领域,包括Web开发、自动化脚本和机器学习等。对于初学者而言,Python的学习曲线更为平缓,上手更加容易。此外,Python拥有庞大的社区支持和丰富的第三方库,使其在实际应用中更具灵活性和扩展性。 ... [详细]
  • 我正在使用 Ruby on Rails 构建个人网站。总体而言,RoR 是一个非常出色的工具,它提供了丰富的功能和灵活性,使得创建自定义页面变得既高效又便捷。通过利用其强大的框架和模块化设计,我可以轻松实现复杂的功能,同时保持代码的整洁和可维护性。此外,Rails 的社区支持也非常强大,为开发过程中遇到的问题提供了丰富的资源和解决方案。 ... [详细]
  • 通过优化模板消息机制,本研究提出了一种高效的信息化推送方案。该方案利用获取的访问令牌(access token)和指定的模板ID,实现了精准且快速的信息推送,显著提升了用户体验和信息传递效率。具体实现中,通过调用相关API接口,确保了消息的准确性和及时性,为用户提供更加便捷的服务。 ... [详细]
  • 深入解析 Django 中用户模型的自定义方法与技巧 ... [详细]
  • 本文探讨了如何在 Google Sheets 中通过自定义函数实现 AJAX 调用。具体介绍了编写脚本的方法,以便在电子表格中发起 AJAX 请求,从而实现数据的动态获取与更新。这种方法不仅简化了数据处理流程,还提高了工作效率。 ... [详细]
  • 本文详细探讨了Java集合框架的使用方法及其性能特点。首先,通过关系图展示了集合接口之间的层次结构,如`Collection`接口作为对象集合的基础,其下分为`List`、`Set`和`Queue`等子接口。其中,`List`接口支持按插入顺序保存元素且允许重复,而`Set`接口则确保元素唯一性。此外,文章还深入分析了不同集合类在实际应用中的性能表现,为开发者选择合适的集合类型提供了参考依据。 ... [详细]
  • 深入解析JWT的实现与应用
    本文深入探讨了JSON Web Token (JWT) 的实现机制及其应用场景。JWT 是一种基于 RFC 7519 标准的开放性认证协议,用于在各方之间安全地传输信息。文章详细分析了 JWT 的结构、生成和验证过程,并讨论了其在现代 Web 应用中的实际应用案例,为开发者提供了全面的理解和实践指导。 ... [详细]
  • 本文深入探讨了 MXOTDLL.dll 在 C# 环境中的应用与优化策略。针对近期公司从某生物技术供应商采购的指纹识别设备,该设备提供的 DLL 文件是用 C 语言编写的。为了更好地集成到现有的 C# 系统中,我们对原生的 C 语言 DLL 进行了封装,并利用 C# 的互操作性功能实现了高效调用。此外,文章还详细分析了在实际应用中可能遇到的性能瓶颈,并提出了一系列优化措施,以确保系统的稳定性和高效运行。 ... [详细]
  • Gear 月度进展报告:2023年7月最新动态与技术升级
    Gear 月度进展报告:2023年7月最新动态与技术升级 ... [详细]
author-avatar
拍友2502920603
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有