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的问题和解决方案


前言

本节将会正篇的最后一篇文章了,经过了前十五节的coding,基本是使用Springboot和Vue来搭建了一个基础的后台管理系统。当然目前的代码还是比较粗糙的,有很多还没做,比如jwt里面的各种处理,数据库的事务处理等。
接下来我会对这个项目做两个方面的深入:

  1. 继续将其打造成一个开箱即用的前后台框架,方便以后我自己做项目,或者分享给大家使用
  2. 使用目前的代码去实现一个实际的项目,在实际项目过程中,来完善这个框架

接下来先完结此次专题,将目前的功能打包到服务器。搞完我会分享出链接和账号,当然得对账号做点约束,不然可能把系统玩坏了,还好我们已经实现了RBAC了。那就开搞吧。


一、springboot打包

在admin-web中加入打包插件

<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins>
</build>

点击Maven模块的package按钮即可。

然后到admin-web-0.0.1-SNAPSHOT.jar所在的目录中执行

java -jar admin-web-0.0.1-SNAPSHOT.jar

然后我们可以用接口去访问测试即可。

二、vue打包

这里的打包部署方式有两种

1.部署在后端代码的resources/static下

这个方案没有跨域问题,单个包部署即可,但代码需要合并到后端。下面开始打包部署:

  1. 在Vben中执行yarn build,生成dist文件夹
  2. 在resources新建static文件夹,然后把dist中的内容复制到该文件夹下
  3. 然后构建后端项目后访问

http://localhost:8080/index.html


由于使用spring security,为了能访问一些静态资源,需要加入WebSecurityCustomizer的配置,如下:

/*** 配置要忽略的路径*/@BeanWebSecurityCustomizer webSecurityCustomizer() {// 忽略 /error 页面return web -> web.ignoring().antMatchers("/error","/index.html","/assets/**","/_app.config.js","/resource/**")// 忽略常见的静态资源路径.requestMatchers(PathRequest.toStaticResources().atCommonLocations());}

TODO
1.去掉index.html也可访问
2.去掉#符号

2.使用nginx或者其他容器单独部署

这个方案暂时不做了。


2023.02.19更新 :使用nginx单独部署Vben应用

三、上传演示

接下来把admin-web-0.0.1-SNAPSHOT.jar上传到服务器,然后在服务器上运行。
这里先对账号做点限制,默认我会创建3个账号,分别是root,admin,user,密码都是123。 然后root账号不能被删除,其他随意测试。

地址:http://118.31.68.110:8081/index.html
账号:root
密码:123


总结

  1. 改了下用户新增模块,支持用户可以分配多个角色
  2. 目前这个代码基本可以用,当然还有很多要完善的,我会番外里面不断完善。再见。

问题

  1. 访问localhost:8080返回401
    01_SpringSecurity学习之配置HttpSecurity

代码地址

Springboot 代码
VbenAdmin 代码


参考文档:
Vben构建&部署

springsecurity重定向

第十六节 springboot 打包vue代码实现前后端统一部署相关推荐

  1. 《PyInstaller打包实战指南》第十六节 单文件模式打包PyGame

    第十六节 单文件模式打包PyGame 打包示例源码下载: M to the B / Coffee Breakout · GitLab 版本信息: pygame==1.9.6 pyinstaller== ...

  2. Python编程基础:第三十六节 模块Modules

    第三十六节 模块Modules 前言 实践 前言 我们目前所有的代码都写在一个文档里面.如果你的项目比较大,那么把所有功能写在一个文件里就非常不便于后期维护.为了提高我们代码的可读性,降低后期维护的成 ...

  3. 大白话5分钟带你走进人工智能-第二十六节决策树系列之Cart回归树及其参数(5)...

                                                    第二十六节决策树系列之Cart回归树及其参数(5) 上一节我们讲了不同的决策树对应的计算纯度的计算方法, ...

  4. 【二十六】springboot实现多线程事务处理

     springboot篇章整体栏目:  [一]springboot整合swagger(超详细 [二]springboot整合swagger(自定义)(超详细) [三]springboot整合token ...

  5. 第二章 第十六节:字典的循环嵌套

    Python基础入门(全套保姆级教程) 第二章 第十六节:字典的循环嵌套 字典的循环 直接看图看代码 dic = {"赵四": "特别能歪嘴","刘能 ...

  6. Python编程基础:第二十六节 kwargs参数**kwargs

    第二十六节 kwargs参数**kwargs 前言 实践 前言 上一节我们尝试传入任意多的参数,我们这一节来学习传入任意多具有参数名称的参数.kwargs参数将用户传入的参数打包为字典传入函数中用于进 ...

  7. Python编程基础:第五十六节 filter函数Filter

    第五十六节 filter函数Filter 前言 实践 前言 filter函数的作用是对可迭代对象内部的元素按照特定条件进行过滤,其书写方式为filter(function, iterable),第一个 ...

  8. Python编程基础:第四十六节 super函数Super Function

    第四十六节 super函数Super Function 前言 实践 前言 使用super函数可以在子类中直接调用父类的方法.通常情况下,我们会将一些通用的属性或方法定义在父类中,子类可以直接使用父类中 ...

  9. Python编程基础:第十六节 元组Tuple

    第十六节 元组Tuple 前言 实践 前言 我们这一节来学习一个与列表非常相似的数据结构--元组.需要注意的是元组定义好以后,其中的元素是不能改变的,并且所有元素是有序排列的, 实践 我们先来创建一个 ...

最新文章

  1. 快速幂 + 矩阵快速幂
  2. mediawiki java api_维基百科 MediaWiki API 解析
  3. 【参会指南】神策 2020 数据驱动用户大会,10 月 13 日将重磅开幕!
  4. 数据库相关的论文笔记
  5. 在 centos 上搭建 gitlab 项目管理软件
  6. Linux:建立内核代码树
  7. 定期清理sql2005事务日志
  8. 具有搜索和自定义分页的React Bootstrap表
  9. 100. Same Tree (Tree;DFS)
  10. Oracle PL\SQL 基础学习一
  11. Jira7.10.1在Windows环境下的安装和配置
  12. 每天学点Linux:一
  13. 数字图像处理(DIP)作业8 matlab or OpenCV 对lena 图片进行边缘提取
  14. html网页背景音乐代码
  15. 《现代汉语》北大公开课
  16. 200元以下耳机推荐
  17. spring定时任务cron为每季度第一个工作日转换为cron表达式
  18. 六一活动页面html,HTML5教程|如何制作六一儿童节答题测试H5页面?
  19. 哎呦,这个社会和时代是怎么了呢???
  20. python中replace()方法

热门文章

  1. ACM--DFS--最大碉堡数--HDOJ 1045--Fire Net
  2. 【Metaverse系列一】元宇宙的奥秘
  3. 嵌入式是做什么的可就业方向是怎样的?
  4. Excel函数应用之统计函数
  5. ChatGPT 突然火爆,在国内你可以这样玩!
  6. DevOps功能实现解析
  7. OV2SLAM 安装运行
  8. 深圳云计算培训:交换分区管理 Swap
  9. 谷歌翻译 google translation API github开源 实践
  10. 【图文并茂】教你在线一键重装正版Win10系统