sbvadmin
文章平均质量分 91
介绍sbvadmin的学习日志
F_angT
这个作者很懒,什么都没留下…
展开
-
第一节 spring boot 模块化构建项目
第一节 spring boot 模块化构建项目不想当将军的士兵,不是个好coder。先弄个模块化吧,往大里整。先看下这节课的结果:从团队开发来说,以往我们会用文件夹的形式来模块化开发。而maven的模块化结构可以真正做到重用,pom清晰,build灵活等特点。.....................原创 2022-07-11 22:00:00 · 1940 阅读 · 0 评论 -
springboot从2.7.2 升级到 3.3.0
时代在进步,springboot已经来到了3.3.0 , 于是我们也打算升级下sbvadmin到3.3, jdk使用21的版本,下面是升级过程中碰到的一些问题,问题不大。这里有很多类似的报错,把 javax改成jakarta就可以了。修改springboot的版本。我下了zulu-21。原创 2024-05-30 21:45:00 · 1385 阅读 · 1 评论 -
Spring Security实现手机号和验证码认证
Spring Security 是一个很常用的安全框架,当然老外写的框架很多时候还是不会适应咱们的国情,比如现在的登录,手机号加验证码才是主流,毕竟密码太多,谁都会忘。而其默认的认证方式还是username 加 password的方式:`UsernamePasswordAuthenticationToken`。本文讲述了如何使用解决手机号和验证码的方式完成认证。原创 2024-04-16 20:45:00 · 1338 阅读 · 0 评论 -
如何使用sbvadmin进行私有化部署的代码开发
本文主要讲述如何使用sbvadmin进行私有化部署的代码开发,这里我们用的私有化仓库是gitee,当然你也可以用自己搭建的gitlab来做,原理差不多。原创 2023-05-17 22:56:08 · 405 阅读 · 0 评论 -
使用nginx单独部署Vben应用
配置文件是关键,跨域部分要注意如果要配置域名的话,补充下server_name即可svbadmin学习日志本学习日志是使用Springboot和Vue来搭建的后台管理系统:账号:root密码:123所有代码可以在gitbub上找到,切换到相应分支即可。代码传送门正篇第一节 spring boot 模块化构建项目第二节 整合mybatisplus完成用户增删改查第三节 整合springsecurity实现基于RBAC的用户登录。原创 2023-02-19 20:48:52 · 1044 阅读 · 0 评论 -
springboot配合vue实现文件上传
本文主要是完善sbvadmin的个人中心模块的其中的头像上传功能,借此也就实现了springboot配合vue实现文件上传。以下是主要编写思路: 1. 使用Files.copy 函数将前端上传的图片存储到某个文件夹 2. 定制WebMvcConfigurer,将该文件夹提供远程访问的权限 3. 数据库存储相对路径,接口补全host和port 4. 使用dev和prod环境配置文件实现host和port的配置原创 2023-02-08 22:11:28 · 2399 阅读 · 0 评论 -
使用mybatisplus 和vben实现低代码开发
如今软件的开发,低代码开发可以3天就做一个CRM,感觉程序员都要失业了的节奏。我们这边用了mybatisplus,其官方也推荐了[几个低代码平台],有兴趣的同学可以去看看。我们就直接用mp提供的[FastAutoGenerator]来进行代码生成。原创 2022-12-14 20:29:30 · 2157 阅读 · 1 评论 -
springboot集成vue使用jenkins持续部署(二)
还遗留了一个问题,就是sbvadmin这个项目是前后端分离的项目,前端的部署如果需要和后端一同部署的话,我们这边需要将打包好的文档放到static目录下实现构建。那么由于前后端开发,正常公司开发的话,肯定会有不同程序员去开发,故我们这边也是由两个库管理的:上一篇文章我们实现了,sb原创 2022-10-31 22:03:47 · 407 阅读 · 0 评论 -
springboot集成vue使用jenkins持续部署
在敏捷开发大行其道的今天,配置个CI是可以加快开发节奏的。以前用gitlab做过ci集成,基本上也是可以用在生产环境的,有兴趣的同学可以参考之前的文章基于gitlab和docker构建持续集成环境今天我们用大名鼎鼎的jenkins来实现持续集成。原创 2022-10-20 21:23:38 · 767 阅读 · 0 评论 -
springboot项目从jdk8升级到jdk11
最近的jenkins现在默认至少需要jdk11的版本了,既然这样我们也升级下吧。毕竟以后springboot3.0也是要jdk11起步了。原创 2022-10-13 20:15:00 · 1856 阅读 · 0 评论 -
使用systemctl保证springboot jar应用后台运行
使用java -jar启动项目后,必须保证终端一直开着才行,当然可以用nohup来进行后台运行,但毕竟不是很优雅。这里我们采用systemctl来保证开机后台运行。日志路径需要动态指定,不然使用systemctl是无法创建的。原创 2022-09-29 09:16:22 · 770 阅读 · 0 评论 -
第十六节 springboot 打包vue代码实现前后端统一部署
本节将会正篇的最后一篇文章了,经过了前十五节的coding,基本是使用Springboot和Vue来搭建了一个基础的后台管理系统。当然目前的代码还是比较粗糙的,有很多还没做,比如jwt里面的各种处理,数据库的事务处理等。继续将其打造成一个开箱即用的前后台框架,方便以后我自己做项目,或者分享给大家使用使用目前的代码去实现一个实际的项目,在实际项目过程中,来完善这个框架接下来先完结此次专题,将目前的功能打包到服务器。原创 2022-09-21 22:38:17 · 1193 阅读 · 5 评论 -
第十五节 基于RBAC的权限管理VbenAdmin前端实现
第三节中我们实现利用spring security实现了基于RBAC的权限管理,并且通过Method的设计实现了Restful风格的接口设计。接下来基于之前设计,我们在VbenAdmin上进行实现。此次对前后端的修改都比较多,所以花了不少时间,以下就几个关键点进行说明,其他的代码可以直接到github上下载。Vben的前端预留界面还是不错的,直接用就行对于递归的理解是菜单管理的关键。原创 2022-09-19 17:31:38 · 1354 阅读 · 0 评论 -
springsecurity整合mybatisplus出现isEnable的问题和解决方案
一般我们建User表的时候会建一个是否激活的字段,取名enabled。而使用Spring Security时,User模型会实现UserDetails,需要复写一个isEnabled的方法。这个时候就会产生问题:```javaIllegal overloaded getter method with ambiguous type for property enable```这个时候我们一般会把`getEnabled`这个方法去掉,而保留`isEnabled`,毕竟这个方法是必须要重写的。但这个原创 2022-09-03 17:12:51 · 990 阅读 · 0 评论 -
第十四节 springboot配合VbenAdmin实现用户CURD
登录后,我们来做一个列表页,对用户进行增删改查。调用第二节写好的restful服务来实现user表的CURD。Vben里面帮我们做好了一组系统管理的界面,包括账号管理,角色管理,菜单管理等,我们可以直接借用。不过里面的部门管理暂时不用了,后面如果要做SAAS平台的话,可以用起来。头像和多个角色{接下来对Vben的改动会越来越多,这样就代码链接会给到两个地址。前后端需要同步跟进。前端现在的技术框架不比后端简单,建议初学者还是多看看里面的例子,直接使用,效率会高很多。原创 2022-09-03 15:35:11 · 1259 阅读 · 6 评论 -
springboot 全局捕捉filter中的异常
第十三节实现登录后,今天我再次刷新页面,发现后台报错了。因为token过期了,而filter层抛出的异常没有被全局异常捕获。原创 2022-09-03 14:51:15 · 861 阅读 · 0 评论 -
数据库设计原则
● 预计不会存储非负数的字段,例如各项id、统计数等,必须设置为UNSIGNED类型。● created_at,updated_at,deleted_at每个表都含有,使用timestamp (这里采用laravel框架的推荐),可以设置默认值来代替,比如int设置默认值为0,varchar设置默认为空,没有默认值则表示该字段为必填。● 当几个表间的字段有关连时,注意外键用单数表名加_id,如 users表中的id与xxx表中的user_id。● 任何类型的数据表,字段空间应当本着足够用,不浪费的原则。原创 2022-09-01 21:06:08 · 446 阅读 · 0 评论 -
第十三节 springboot配合VbenAdmin实现前端登录
前十二节课基本上把后端结构搭建了一遍,当然还有很多知识点没涉及,不过我已经想去写前端界面,至于其他知识点,在实战中再慢慢学习。前端脚手架我选了一款叫Vben Admin的开箱即用框架。Vben Admin这节对之前的spring security的部分内容做了些改动,可以对UsernamePasswordAuthenticationToken做更深入的了解login 和getUserInfo 的设计还是比较普遍,大家得理解这种设计思路。原创 2022-08-24 21:46:38 · 3530 阅读 · 7 评论 -
第十二节 使用flyway对数据库进行版本管理
对数据库的版本控制,个人认为还是php阵营做的好一点,这个migration的设计在yii和laravel框架早就使用了。在对比了下使用的便利性上,光没有生成migration文件的命令这一条,感觉flyway就不是很方便。于是乎需要开发的时候规定migration文件的命名规范。无形增加管理成本。这里我们就约定为命名规范,即V年月日.时分秒__描述.sqlflyway 版本很多还是直接用springboot自带比较好网上的一些配置不一定适合当前项目,可以多做点尝试,解决问题。...原创 2022-08-17 22:23:39 · 1492 阅读 · 0 评论 -
第十一节 springboot配置log输出到本地文件
我们可以很方便的结合@Slf4j注解实现日志的输出,做上一些配置可以将日志保存到本地,便于排查问题,特别是针对物联网应用,一般需要记录下上传上来的数据,便于排查问题。通常我们可以用xml来进行配置。配置文件可以直接叫logback.xml或者logback-spring.xmlroot节点很重要,记得把appender都配置进去。...原创 2022-08-15 22:49:25 · 1103 阅读 · 0 评论 -
第十节 利用Quartz实现数据库定时备份
数据库定时备份是个普遍的需求,毕竟多点备份总是好的,不然像weimeng这样被删库跑路的损失可就惨重了。Springboot 中可以利用@Scheduled注解来快速解决定时任务的需求,这里我们使用Quartz这个调度库来实现定时任务。注意备份语句的拼接在线cron。...原创 2022-08-11 22:47:43 · 829 阅读 · 0 评论 -
第九节 利用springboot的aop实现行为日志管理
开发的时候我们习惯了sout来打印输出排查问题,而正式上线的时候我们则需要借助于日志来定位问题。从实战角度出发,有两类日志需要记录1.行为日志,主要是记录对数据表的修改,或者一些特殊的操作,比如登录等2.错误日志,一般就是错误反馈,这个比较容易理解了当然对于物联网项目,我们也需要记录一些数据上传的日志,协助我们排查硬件是否工作正常。那网上大部分的教程都用了springboot的AOP思想来解决这一问题。接下来我们也来实现下。@Target({}利用AOP可以很好的实现日志记录。...原创 2022-08-06 21:18:16 · 584 阅读 · 0 评论 -
第八节 springboot结合rabbitmq实现异步邮件发送
顺着第七节的内容,现在队列里面有消息了,需要根据这个消息发送一封邮件给新增加的用户,让其激活账号等。这里我们打算新一个邮件服务器应用,这样就可以分应用部署了。MailReceiver需要加入@Component注解,不然无法监听消息由于pom引入了admin-model,而admin-model里面有mybatisplus,所以配置文件里要加入数据库配置。...原创 2022-08-01 18:45:00 · 947 阅读 · 0 评论 -
配置apifox自动获取登录的token
因为每次请求都需要token,如果每次都要从登录接口那边拷贝过来,比较繁琐。可以用脚本来实现自动获取。这个功能一般软件也都有,比如postman之类的。脚本里面的是环境变量,不是全局变量。登录态(Auth)如何处理httpshttpshttpshttpshttpshttpshttps。...原创 2022-07-29 20:15:00 · 4933 阅读 · 0 评论 -
第七节 springboot结合rabbitmq实现队列消息
消息队列的作用不言而喻,削峰,解耦都是不错的。这里我们用的是rabbitmq来实现消息队列。细节不多,记得rabbitmqctl的命令都要跑,不然可能会连不上,特别是配置远程登录。原创 2022-07-28 20:30:00 · 658 阅读 · 0 评论 -
第六节 springboot结合redis实现缓存策略
缓存是必不可少的,java对缓存的支持比其他语言会方便不少,由于Ehcache不够直观,这里采用redis作为缓存服务器。缓存是很必要的,如果全交给数据库,在生产系统你会发现你的内存会不够用。而交给缓存后,内存就得到了释放。这种直接缓存整个方法的返回的缓存思路,我觉得java还是做的比较有意思的。之前写php的时候一般会监听整个数据库表的变化,然后生成缓存。...原创 2022-07-27 18:45:00 · 436 阅读 · 0 评论 -
第五节 使用ResponseBodyAdvice格式化接口输出
上节提到目前的输出比较随意,正常开发需要把输出进行统一,方便前端调用。这里用到了springboot提供的ResponseBodyAdvice来实现。注意大部分文章在格式化的beforeBodyWrite里只能处理正确的情况ResultFormat.success(o),这里加入对o的结构类型判断,当已经是ResultFormat的情况下,就直接返回就可以解决fail的输出。...原创 2022-07-26 19:15:00 · 500 阅读 · 0 评论 -
第四节 springsecurity结合jwt实现前后端分离开发
前后端分离现在是主流开发形式,jwt也是用的比较多一种令牌方式,接下来我们来整合下jwt。方便后续和vue进行前后端联动开发。Security整合jwt有很多种方法,核心还是要理解filterChain目前的返回格式比较不符规范,下一节把输出格式化下。...原创 2022-07-22 19:00:00 · 735 阅读 · 0 评论 -
第三节 整合springsecurity实现基于RBAC的用户登录
权限认证中还是springsecurity用的比较多,不过springboot2.7以后有些配置有改动。springboot2.7以后废弃了WebSecurityConfigurerAdapter,需要注意为了实现标准restful请求的规范,我们在permission这边表加入了method这个字段用来判断。...原创 2022-07-19 21:58:58 · 1181 阅读 · 0 评论 -
第二节 整合mybatisplus完成用户增删改查
整合mybatisplus完成用户增删改查mybatis 确实比较灵活,可以让你直接写原生sql,再复杂的查询也能很好解决。当然基础的CURD要写的代码比较多,所以配合mybatisplus,就完美了。mybatis的优点,支持定制化SQL,存储过程以及高级映射。个人认为的麻烦的地方,新增修改要写的xml太繁琐,字段一多就累的够呛;mybatis-plus,帮你注入了基本的CURD,同时你也可以继续使用原来xml编写方式...原创 2022-07-14 20:00:00 · 893 阅读 · 0 评论