开源前后端分离快速开发基础框架
By: Date: 2020年6月26日 Categories: 案例,程序 标签:

最近才发现,之前在github上上传的jwt的示例项目竟也有125个星星,虽不多,但是作为首次上传的项目还是有点儿激动的。所以趁着端午有空,就又完善了下,升级了一些有漏洞的依赖到较新的版本,也对代码做了一些优化。将前端的vue-cli也更新到了3.*,没有添加太多的功能,主要包含的是用户及基础的权限控制,集成了单点的定时任务等,对于学习或者接一些小的项目还是可以的。

框架应用到的技术及组件如下:
1. springboot 2.1.2
2. shiro 1.5.3
3. jwt
4. mybatis-plus 3.1.2
5. redis,mysql,mongoDB
6. Vue,ElementUI

项目中所有的功能可以通过后面的几张插图看到,这里就不一一列出了。项目中数据库表都可以通过代码生成器生成基础的代码。应用的组件中mongoDB只存放了一些请求参数的日志,没有需求的可以直接移除。本地开发使用docker来配置开发环境,安装redis,mongoDB都是分分钟的事情。前端依旧采用了开源的vue-element-admin项目,并做了一些简单的修改,ElementUI的文档清晰明了,使用起来也是很方便。

登录采用一张静态的图片做背景,并在其上增加了一些动态的效果,使得视觉效果更佳。当然图片什么的可以随意发挥。

采用shiro做安全框架,使用jwt替换了以前常用的session+cookie。应用token有效期内自动刷新的方案,使用户无感知永久登录。这些在以前的文章中都有写过。

用户管理

菜单与权限一样,都可以动态的方式配置。菜单与权限绑定,没有权限即无法看到菜单。权限可以控制到按钮级别,没有设计数据权限,开发者可以根据实际的业务场景来处理。

菜单管理

使用mybatis-plus替换原来的mybatis,因为他提供了很多现成的基础功能,如代码生成,条件构造,分页插件,租户等功能,简化了不少重复的代码量,应用起来更加高效。

角色权限

集成了quartz,来完成基础的定时任务功能,如简单的定时数据备份等。对于单点部署的小项目来说已经足够,多个节点部署不想增加分布式任务调度框架的话,可采用redis锁的方式处理。

定时任务

在后端,依然使用统一的附件上传模块来保存附件,只需要继承一个基类,就可以获取到每次请求的附件信息,当然也提供了手动保存附件的注解,灵活多变。以前的文章中也写过。

附件管理

这里在前端使用了vue-lunar-full-calendar的组件实现日历功能,可以非常方便的实现一个便签一样的待办任务模块。

待办事项

这里只对框架做了最简单的展示,基础的功能目前并不多,要做到快速开发还有点距离,不过最近已经在接手的两个项目中使用它减少了不少代码量。后面也会将一些可以通用的模块,移植过来。一般说持续更新的东西都可能没有下文,所以这里大家意会就好。

最后再贴一遍项目地址:
1. 项目后端 https://github.com/sunnj/story-admin
2. 项目前端 https://github.com/sunnj/story-admin-console

欢迎看到的伙伴们点星星!

发表评论

电子邮件地址不会被公开。 必填项已用*标注