svbadmin学习日志

本学习日志是使用Springboot和Vue来搭建的后台管理系统:
演示地址: http://118.31.68.110:8081/index.html
账号:root
密码:123
所有代码可以在gitbub上找到,切换到相应分支即可。【 代码传送门

第一节 spring boot 模块化构建项目
第二节 整合mybatisplus完成用户增删改查
第三节 整合springsecurity实现基于RBAC的用户登录
第四节 springsecurity结合jwt实现前后端分离开发
第五节 使用ResponseBodyAdvice格式化接口输出
第六节 springboot结合redis实现缓存策略
第七节 springboot结合rabbitmq实现队列消息
第八节 springboot结合rabbitmq实现异步邮件发送
第九节 利用springboot的aop实现行为日志管理
第十节 利用Quartz实现数据库定时备份
第十一节 springboot配置log输出到本地文件
第十二节 使用flyway对数据库进行版本管理
第十三节 springboot配合VbenAdmin实现前端登录
第十四节 springboot配合VbenAdmin实现用户CURD
第十五节 基于RBAC的权限管理VbenAdmin前端实现
第十六节 springboot 打包vue代码实现前后端统一部署

2.1 数据库设计原则
3.1 配置apifox自动获取登录的token
13.1 springboot 全局捕捉filter中的异常
14.1 springsecurity整合mybatisplus出现isEnable的问题和解决方案

不想当将军的士兵,不是个好coder。先弄个模块化吧,往大里整。先看下这节课的结果: 在这里插入图片描述

一、模块化的好处?

从团队开发来说,以往我们会用文件夹的形式来模块化开发。而maven的模块化结构可以真正做到重用,pom清晰,build灵活等特点。

二、模块化步骤

1.新建maven项目,取名svbadmin

注意:虽然我们最终是一个spring boot项目,但一开始我们需要建一个maven项目

在这里插入图片描述
然后删除src目录
在这里插入图片描述

2.新建子模块

  1. adminserver ,以后便于扩展加入mailserver,chatserver等
    在svbadmin上右键新建Module,同样选择maven项目
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  2. 在adminserver下新加3个模块
    admin-model
    admin-mapper
    admin-service
    建立方式和上面创建adminserver一样,这里的模块src目录保留
  3. 新建一个spring boot 项目,取名为admin-web
    这步很关键,web模块不能像上面三个模块一样,需要单独创建为springboot项目,然后再导入
    在这里插入图片描述
    然后进入文件,只保留src和pom,其他删除后,剪切到adminserver文件夹下
    在这里插入图片描述
    得到如下结构
    在这里插入图片描述
    打开编译器,注意看,此时的admin-web和其他模块不一样,它还不是一个maven模块
    在这里插入图片描述
    右键选中admin-web里面的pom文件,将其添加为maven project
    在这里插入图片描述
    由于这个模块是导入的,所以需要在adminserver的pom中手动加入admin-web的模块
<modules>
    <module>admin-model</module>
    <module>admin-mapper</module>
    <module>admin-service</module>
    <module>admin-web</module>
</modules>

2.编辑子模块依赖

  1. 把admin-web中的springboot 依赖剪切,加入到最顶层的pom中
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.7.1</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

2.在adminserver的pom中补充admin-web模块

<module>admin-web</module>

3.在admin-web里加入上级模块的parent

<parent>
    <artifactId>adminserver</artifactId>
    <groupId>com.shenfangtao</groupId>
    <version>1.0-SNAPSHOT</version>
</parent>

4.在admin-web中加入admin-service依赖

<dependency>
    <groupId>com.shenfangtao</groupId>
    <artifactId>admin-service</artifactId>
    <version>1.0-SNAPSHOT</version>
</dependency>

5.在admin-service中加入admin-mapper依赖

<dependencies>
    <dependency>
        <groupId>com.shenfangtao</groupId>
        <artifactId>admin-mapper</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>
</dependencies>

6.在admin-mapper中加入admin-model依赖

<dependencies>
    <dependency>
        <groupId>com.shenfangtao</groupId>
        <artifactId>admin-model</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>
</dependencies>

7.为了演示security和web,我们在admin-model中加入这两个模块

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-security</artifactId>
    </dependency>
</dependencies>

三、测试helloworld

在admin-web下新建controller文件,再新建HelloController,加入@RestController
在这里插入图片描述
如果报红,提示要加入web依赖,可以先点下Reload按钮(因为web依赖在admin-model里面已经加入了)
在这里插入图片描述
运行一下,打开http://localhost:8080/hello,成功!
在这里插入图片描述
用这个密码登录,后就可以看到前言中看到的界面了。

  1. 用maven建模块
  2. admin-web比较重要
  3. 依赖记得更新,后面可陆续加入数据库,缓存等依赖

第一节springboot模块化构建项目

参考文档:
一个SPRINGBOOT项目如何进行模块化改造

springboot 搭建多模块的作用以及优点

第一节 spring boot 模块化构建项目不想当将军的士兵,不是个好coder。先弄个模块化吧,往大里整。先看下这节课的结果:从团队开发来说,以往我们会用文件夹的形式来模块化开发。而maven的模块化结构可以真正做到重用,pom清晰,build灵活等特点。..................... SpringBoot系列到现在虽然代码不多,但是感觉结构很乱,随着项目的复杂性提高,代码会越来越臃肿,耦合性高。 所以SpringBoot多模块很有必要,简单来说就是由以前按包分模块变为jar包分模块。在多模块jar模式下可以将某个jar拿出来对外共用,能大大提高代码复用率与开发效率。(后续SpringCloud就是将jar升级成war或者多个集合jar,也就是常说的微服务。) 一、模块划分 1.整体流程 (1)新建springboot项目; (2)在新建后的springboot项目中新建多个modu
本来不打算写这一篇的,但是在操作过程中,创建了几次都无法在同一个窗口中正常启动多个子模块,启动类无法识别。所以就再次记录一下。由于我本地已经搭建成功,所以本篇是另开工作目录来创建,主要是为了重现搭建过程和一些细节。后面的gitee上传的是真正的项目。 maven管理子模块,主要是为了统一管理版本和通用的jia报,以及微服务模块之间的抽离和封装。也方便我们对整个项目的管理。其他就不多说了,大家也都...
这段时间也一直在学习Netty相关知识,因为涉及知识点比较多,也走了不少弯路。目前网上关于Netty学习资料玲琅满目,不知如何下手,其实大家都是一样的,学习方法和技巧都是总结出来的,我们在没有找到很好的方法之前不如按部就班先从基础开始,一般从总分总的渐进方式,既观森林,又见草木。 Netty是一款提供异步的、事件驱动的网络应用程序框架和工具,是基于NIO客户端、服务器端的编程框架。所以这里我们先以NIO和依赖相关的基础铺垫来进行剖析讲解,从而作为Netty学习之旅的一个开端。 Mysql中锁的
Spring bootSpring框架的一个模块,用于创建独立的,生产级的Spring基础应用程序,并且程序员的工作量最小。它是在核心弹簧框架之上开发的。spring boot背后的主要概念是避免大量的样板代码和配置来改进开发,单元测试等。在创建新的spring应用程序的情况下,我们编写了许多XML配置,服务器设置,添加依赖项等。这些配置文件是样板代码的一个例子。Spring boot避免了所有这些样板代码。 Spring Framework是最流行的Java EE框架之一。它是由Rod Johnson于
教你搭建springboot多模块框架教你搭建springboot多模块框架1. 写在前面2. 系统结构2.1 需求分析2.2 代码结构2.3 代码分析2.3.1 统一返回值封装2.3.2 统一异常处理3. 多模块系统3.1 什么是多模块3.2 如何创建多模块项目3.3 多模块间的引用4. 写在后面 教你搭建springboot多模块框架 1. 写在前面 看到这里的小伙伴注意了,本文将介绍利用Sp...
spring-web的pom中引入spring-service然后创建Controller spring-entry的pom中加入spring-web依赖并启动其中的启动类 ①在spring-entry中的pom加入maiClass ②其他模块不包括父工程中的pom都加入如下设置 ③先在instal... F_angT: 2023.02.19更新 :[使用nginx单独部署Vben应用](https://blog.csdn.net/F_angT/article/details/129072904) 第十六节 springboot 打包vue代码实现前后端统一部署 F_angT: 你有域名么,不然得解决下跨域问题 第十六节 springboot 打包vue代码实现前后端统一部署 swottt77: nginx部署能讲讲吗? 第十四节 springboot配合VbenAdmin实现用户CURD F_angT: 终于写完了表情包 ,有空可以看看,有问题私信我 https://blog.csdn.net/F_angT/article/details/128904348 第十四节 springboot配合VbenAdmin实现用户CURD swottt77: 多谢,辛苦了,我不太熟,学习中表情包