shiro+php,一套基于SpringBoot+Vue+Shiro 前后端分离 开发的代码生成器
一、前言
最近花了一个月时间完成了一套基于Spring Boot+Vue+Shiro前后端分离的代码生成器,目前项目代码已基本完成
止步传统CRUD,进阶代码优化:
该项目可根据数据库字段动态生成 controller、mapper、service、html、jsp、vue、php、.py ... 等各种类型代码,采用 velocity 模板引擎在页面动态配置生成代码,前后端动态权限配置,前端权限精确到 按钮 级别,后端权限精确到 uri 上,QQ授权第三方单用户登录...等
基本环境:
JDK 1.8
IDEA 2019.2
Redis 5.0.5
MySQL 5.7
Nginx 1.17.1
Docker 18.09.7
Node.js 10.15.3
项目使用技术栈:
前端:Vue + Axios
后端:Spring Boot 、 MyBatis-Plus
缓存:Redis
权限:Shiro
.......
二、代码生成器介绍
1、登录:
测试账号:test 密码:123456
由于权限问题 线上开放的权限仅只是代码生成器那一部分,需要权限控制、系统日志等功能可fork源码参考~
三方登录目前暂支持QQ授权登录,默认权限只有代码生成器模块,登录过后,30分钟内不进行操作将自动下线,同一账号在别处登录将被挤下线,点击头像在个人信息中可自行修改账号、密码、昵称
2、代码生成器
① 项目管理
新建一个项目后,编辑项目包,这里和我们ide打开一个项目下面的包层次类似,后面生成的代码也将存放在此树包目录下,可以根据自己的需求来灵活配置建包
② 初始模板
这里可以选择给自己的项目添加一个初始模板,在项目模板管理处可选择项目进行一键新增生成对应的模板
生成规则:根据项目管理中的包名与初始模板中的模板类型名对应上即可生成,不对应的即不会处理~
③ 项目模板管理
列表页面和初始模板列表页面类型,不同的是新增时需要选择项目哦,后面的代码生成将会依照这里配置的代码模板动态生成!
于是乎,整个代码生成的精髓就在乎这里自己项目所配置的模板哦,这里也给出了可以参考配置的模板数据
数据源配置信息,要在根据数据库字段生成一次代码后才拥有数据可以查看哦,不然会是空数据!
ex: ${author} 对应生成 zhengqing
${package.input} 对应生成 com.zhengqing.modules.system.dto.input
另外就需要参考 Velocity 模板引擎的基本语法使用了
这里再例出一个小编配置的实体类模板吧
温馨小提示:在项目的sql中保存有小编代码生成器项目中配置的项目模板以供参考哦~
package ${package.entity};
#foreach($pkg in ${table.importPackages})
import ${pkg};
#end
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
*
${table.comment}
*
* @author: ${author}
* @date: ${date}
*/
#if(${table.convert})
@Data
@ApiModel(description = "${table.comment}")
@TableName("${table.name}")
#end
#if(${superEntityClass})
public class ${entity} extends ${superEntityClass}#if(${activeRecord})#end {
#elseif(${activeRecord})
public class ${entity} extends Model {
#else
public class ${entity} implements Serializable {
#end
private static final long serialVersionUID = 1L;
#foreach($field in ${table.fields})
#if(${field.keyFlag})
#set($keyPropertyName=${field.propertyName})
#end
#if("$!field.comment" != "")
/**
* ${field.comment}
*/
@ApiModelProperty(value = "${field.comment}")
#end
#if(${field.keyFlag})
@TableId(value="${field.name}", type= IdType.AUTO)
#else
@TableField("${field.name}")
#end
private ${field.propertyType} ${field.propertyName};
#end
#if(${entityColumnConstant})
#foreach($field in ${table.fields})
public static final String ${field.name.toUpperCase()} = "${field.name}";
#end
#end
#if(${activeRecord})
@Override
protected Serializable pkVal() {
#if(${keyPropertyName})
return this.${keyPropertyName};
#else
return this.id;
#end
}
#end
}
④ 数据库管理
连接数据库
这里便是配置数据库连接信息了,这里小编给出一个开放的数据库可供连接测试使用,希望读者不要乱搞哦
数据库连接地址:www.zhengqing520.com:3306 用户名:hello 密码:root
可以在本地连接小编给出的数据库 在里面新建表然后在页面配置连接后选择表测试生成哦~
选择表
生成代码或修改远程数据库注释信息,这里为了安全考虑未做新增字段,删除字段等功能,如有兴趣,可fork小编源码自行修改其功能
3、系统管理
① 用户管理
这里不多说,就是一些基础信息
② 角色管理
将指定的角色分配给指定的用户
分配指定的权限给该角色
③ 菜单管理
在这里动态配置后端uri请求权限与前端按钮权限
④ 系统日志
三、总结
该代码生成器,打破传统的CRUD,避免花费太多时间在重复事情上,将更多时间用于学习晋升
该项目对于小白来说可学习技术也有很多,比如前后端分离,跨域解决,三方授权登录,@Validated后端参数校验,简单的redis缓存处理,shiro动态权限配置,前端按钮级别权限控制 等等,后端使用目前企业流行的Spring Boot+MyBatis-Plus技术栈,前端也是较为普遍 学习轻松的vue。对于全栈了解入门也是一个好的demo
本文目前只是给出项目使用介绍流程,后续若有时间,将会给出其中某些技术栈的案例教程
案例demo代码将会存放至:https://gitee.com/zhengqingya/java-workspace
注:实现本代码生成器参考了网上很多前后端教程,以及小编老大肖哥,在这一个月时间里,白天上班,晚上回家利用空闲时间来码代码,其中也是学到了不少东西,现在也分享出来给大家,希望能够帮助到有需要的小伙伴们~
项目源码
觉得还可以的话,请给个❤
shiro+php,一套基于SpringBoot+Vue+Shiro 前后端分离 开发的代码生成器相关推荐
- 基于SpringBoot+Vue的前后端分离开发汽车之家资讯论坛系统设计与实现
演示地址:传送门 http://101.43.254.35/ (用户名:admin 密码:1) 废话不多说,直接上实际效果图 系统首页 系统首页桌面,顶部依次为系统Logo.全局搜索框(支持模糊查询动 ...
- 基于Springboot+Vue实现前后端分离商城管理系统
项目编号:BS-SC-030 一,项目简介 新新商城,一款基于 Springboot+Vue 的电商项目,前后端分离项目.完整的实现了一个商城系统应有的基本功能,包括但不限于以下主要功能模块: 前端商 ...
- 基于Springboot+vue实现前后端分离二手图书交易
作者主页:编程指南针 作者简介:Java领域优质创作者.CSDN博客专家 .掘金特邀作者.多年架构师设计经验.腾讯课堂常驻讲师 主要内容:Java项目.毕业设计.简历模板.学习资料.面试题库.技术互助 ...
- 基于springboot+vue的前后端分离商城系统
springboot前后端分离商城 介绍 springboot前后端分离商城 本项目由本人根据教程实现的一个springboot项目,基本已实现项目,但是本人希望加入自己的小功能, 请期待下一次的更新 ...
- 基于SpringBoot+Vue的前后端分离的博客管理系统
菜单 首页 写文章 内容管理 博客管理 相册管理 归档 登录.注册 (项目整合了shiro+jwt+redis,用户未登录不能发布博客.内容管理.相册.归档等功能) 文章末尾赋前后端代码 ...
- 在线租房|基于Springboot+Vue实现前后端分离的租房系统
作者简介:全栈开发工程,从事Java.Python.前端.小程序方面的开发和研究,对大数据应用与开发比较感兴趣, 主要内容:Java项目.前端项目.Python项目.小程序开发.大数据项目.单片机 收 ...
- 社区团购|生鲜团购|基于Springboot+Vue实现前后端分离社区团购
作者主页:编程千纸鹤 作者简介:Java.前端.Python开发多年,做过高程,项目经理,架构师 主要内容:Java项目开发.毕业设计开发.面试技术整理.最新技术分享 收藏点赞不迷路 关注作者有好处 ...
- 基于SpringBoot+vue的前后端分离学生成绩管理系统的设计与实现--毕业设计
开发环境 JAVA8.MySQL5.7.SpringBoot2.1.0.Vue.ElementUI.JPA 主要功能 学生信息:学号.姓名.性别.联系方式.班级. 成绩管理:学号.课程编号.成绩 班级 ...
- 基于SSM+SpringBoot+Vue+ElementUI前后端分离的校园岗位招聘就业管理系统
运行视频 基于SSM+SpringBoot+Vue+ElementUI前后端分离的校园岗位招聘就业管理系统 项目运行截图 学生管理 添加学生 学生信息 教师管理 教师信息 实习基地 公告信息 公司管理 ...
最新文章
- hibernate fetch使用
- tracepro应用实例详解_建筑安装工程造价,高清PPT图文详解,小白也能学会的简单步骤...
- 最强人脸检测来了 yolov5 face
- 60.extjs-布局 (在column布局中使用fieldset 和 在fieldset中使用column布局)
- C语言,两个超大整型数乘法
- Linux用户管理命令(第二版)
- DPDK X710 DDP PPPoE 实践
- stata 空间杜宾模型_利用STATA创建空间权重矩阵及空间杜宾模型计算----命令
- android仿iphone日期时间选择器,jquery仿苹果的时间/日期选择效果
- python 二项分布_如何理解python中的二项分布?
- 史上最强的烧脑合集!能全都搞懂的只有天才!
- java版溺尸刷怪塔_minecraft河流群系溺尸刷怪塔存档
- 绘真妙笔千山怎么在电脑上玩 绘真妙笔千山安卓模拟器教程
- 华为HMS对谷歌GMS,有多大胜算?
- android NV21裁剪算法
- AI相机,请把我拍成“Angelababy ”!
- 灰色关联分析模型(C++代码)
- 普通电脑U盘安装苹果系统简易方法
- 解决Intellij idea 修改控制台的字体样式问题
- am572x时钟配置