一、前言

最近花了一个月时间完成了一套基于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 前后端分离 开发的代码生成器相关推荐

  1. 基于SpringBoot+Vue的前后端分离开发汽车之家资讯论坛系统设计与实现

    演示地址:传送门 http://101.43.254.35/ (用户名:admin 密码:1) 废话不多说,直接上实际效果图 系统首页 系统首页桌面,顶部依次为系统Logo.全局搜索框(支持模糊查询动 ...

  2. 基于Springboot+Vue实现前后端分离商城管理系统

    项目编号:BS-SC-030 一,项目简介 新新商城,一款基于 Springboot+Vue 的电商项目,前后端分离项目.完整的实现了一个商城系统应有的基本功能,包括但不限于以下主要功能模块: 前端商 ...

  3. 基于Springboot+vue实现前后端分离二手图书交易

    作者主页:编程指南针 作者简介:Java领域优质创作者.CSDN博客专家 .掘金特邀作者.多年架构师设计经验.腾讯课堂常驻讲师 主要内容:Java项目.毕业设计.简历模板.学习资料.面试题库.技术互助 ...

  4. 基于springboot+vue的前后端分离商城系统

    springboot前后端分离商城 介绍 springboot前后端分离商城 本项目由本人根据教程实现的一个springboot项目,基本已实现项目,但是本人希望加入自己的小功能, 请期待下一次的更新 ...

  5. 基于SpringBoot+Vue的前后端分离的博客管理系统

    菜单 首页 写文章 内容管理 博客管理 相册管理 归档 登录.注册 (项目整合了shiro+jwt+redis,用户未登录不能发布博客.内容管理.相册.归档等功能) 文章​​​​​​​末尾赋前后端代码 ...

  6. 在线租房|基于Springboot+Vue实现前后端分离的租房系统

    作者简介:全栈开发工程,从事Java.Python.前端.小程序方面的开发和研究,对大数据应用与开发比较感兴趣, 主要内容:Java项目.前端项目.Python项目.小程序开发.大数据项目.单片机 收 ...

  7. 社区团购|生鲜团购|基于Springboot+Vue实现前后端分离社区团购

    作者主页:编程千纸鹤 作者简介:Java.前端.Python开发多年,做过高程,项目经理,架构师 主要内容:Java项目开发.毕业设计开发.面试技术整理.最新技术分享 收藏点赞不迷路  关注作者有好处 ...

  8. 基于SpringBoot+vue的前后端分离学生成绩管理系统的设计与实现--毕业设计

    开发环境 JAVA8.MySQL5.7.SpringBoot2.1.0.Vue.ElementUI.JPA 主要功能 学生信息:学号.姓名.性别.联系方式.班级. 成绩管理:学号.课程编号.成绩 班级 ...

  9. 基于SSM+SpringBoot+Vue+ElementUI前后端分离的校园岗位招聘就业管理系统

    运行视频 基于SSM+SpringBoot+Vue+ElementUI前后端分离的校园岗位招聘就业管理系统 项目运行截图 学生管理 添加学生 学生信息 教师管理 教师信息 实习基地 公告信息 公司管理 ...

最新文章

  1. hibernate fetch使用
  2. tracepro应用实例详解_建筑安装工程造价,高清PPT图文详解,小白也能学会的简单步骤...
  3. 最强人脸检测来了 yolov5 face
  4. 60.extjs-布局 (在column布局中使用fieldset 和 在fieldset中使用column布局)
  5. C语言,两个超大整型数乘法
  6. Linux用户管理命令(第二版)
  7. DPDK X710 DDP PPPoE 实践
  8. stata 空间杜宾模型_利用STATA创建空间权重矩阵及空间杜宾模型计算----命令
  9. android仿iphone日期时间选择器,jquery仿苹果的时间/日期选择效果
  10. python 二项分布_如何理解python中的二项分布?
  11. 史上最强的烧脑合集!能全都搞懂的只有天才!
  12. java版溺尸刷怪塔_minecraft河流群系溺尸刷怪塔存档
  13. 绘真妙笔千山怎么在电脑上玩 绘真妙笔千山安卓模拟器教程
  14. 华为HMS对谷歌GMS,有多大胜算?
  15. android NV21裁剪算法
  16. AI相机,请把我拍成“Angelababy ”!
  17. 灰色关联分析模型(C++代码)
  18. 普通电脑U盘安装苹果系统简易方法
  19. 解决Intellij idea 修改控制台的字体样式问题
  20. am572x时钟配置

热门文章

  1. 计算机图形软件---OpenGL简介
  2. windows下mongodb的安装与配置
  3. MySQL 配置文件优化
  4. 大数据治理需要具备哪些能力和关键技术?
  5. 如何打造一个小而精的电商网站架构?
  6. 微积分19--定积分的几何应用
  7. MySQL 讨厌哪种类型的查询
  8. GMP:了解GMF引擎功能Graphical Modeling Framework
  9. 广域线路打环测试步骤
  10. shell自动安装mysql_RPM包安装mysql,采用shell脚本实现自动安装、配置与卸载