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.新建子模块
- adminserver ,以后便于扩展加入mailserver,chatserver等
在svbadmin上右键新建Module,同样选择maven项目
- 在adminserver下新加3个模块
admin-model
admin-mapper
admin-service
建立方式和上面创建adminserver一样,这里的模块src目录保留 - 新建一个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.编辑子模块依赖
- 把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,成功!
用这个密码登录,后就可以看到前言中看到的界面了。
总结
- 用maven建模块
- admin-web比较重要
- 依赖记得更新,后面可陆续加入数据库,缓存等依赖
代码地址
参考文档:
一个SPRINGBOOT项目如何进行模块化改造