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

.......

二、代码生成器介绍

0b61ecbf9e19e5beff5df70c20491b31.png

1、登录:

测试账号:test 密码:123456

由于权限问题 线上开放的权限仅只是代码生成器那一部分,需要权限控制、系统日志等功能可fork源码参考~

三方登录目前暂支持QQ授权登录,默认权限只有代码生成器模块,登录过后,30分钟内不进行操作将自动下线,同一账号在别处登录将被挤下线,点击头像在个人信息中可自行修改账号、密码、昵称

86a328325ca8bd4ae6fa0cb158f07bea.png

2、代码生成器

① 项目管理

14cde9af5bf6e08a36117cccbd87c8fa.png

新建一个项目后,编辑项目包,这里和我们ide打开一个项目下面的包层次类似,后面生成的代码也将存放在此树包目录下,可以根据自己的需求来灵活配置建包

5ed3f9bae5489c1b0e47f3fe35a7ce19.png

② 初始模板

3b21f6d3fac94c8d9428d8001eb26095.png

这里可以选择给自己的项目添加一个初始模板,在项目模板管理处可选择项目进行一键新增生成对应的模板

a08edd82a5e8ff9c62a0e52350fc12fd.png

生成规则:根据项目管理中的包名与初始模板中的模板类型名对应上即可生成,不对应的即不会处理~

③ 项目模板管理

列表页面和初始模板列表页面类型,不同的是新增时需要选择项目哦,后面的代码生成将会依照这里配置的代码模板动态生成!

316da3a3ecb0bd35711140bb5e232036.png

于是乎,整个代码生成的精髓就在乎这里自己项目所配置的模板哦,这里也给出了可以参考配置的模板数据

数据源配置信息,要在根据数据库字段生成一次代码后才拥有数据可以查看哦,不然会是空数据!

7ac004ae90ad84789b877cac9e29b9d3.png

ex: ${author} 对应生成 zhengqing

${package.input} 对应生成 com.zhengqing.modules.system.dto.input

5873c0e47fe50bf7ae331cf4ef3ed607.png

另外就需要参考 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

}

④ 数据库管理

连接数据库

48eb4abdd9a69bd3d68081e916a222d9.png

这里便是配置数据库连接信息了,这里小编给出一个开放的数据库可供连接测试使用,希望读者不要乱搞哦

数据库连接地址:www.zhengqing520.com:3306 用户名:hello 密码:root

可以在本地连接小编给出的数据库 在里面新建表然后在页面配置连接后选择表测试生成哦~

920b38b4bc80d7be4417f82b5553a1bf.png

选择表

f9e7be68910cd45ec9cfe4ea43c727f1.png

生成代码或修改远程数据库注释信息,这里为了安全考虑未做新增字段,删除字段等功能,如有兴趣,可fork小编源码自行修改其功能

dd565cabc9346b1bde04c3474505ca56.png

3、系统管理

① 用户管理

这里不多说,就是一些基础信息

② 角色管理

将指定的角色分配给指定的用户

c0779f3915016e2e42c7002bea642ce3.png

分配指定的权限给该角色

35db86eaeea6b38d27f1eee3a9c9a4a0.png

③ 菜单管理

在这里动态配置后端uri请求权限与前端按钮权限

4e2cc62cc4349af9b3818b49fe356765.png

④ 系统日志

9f4987b28e50a4de308d9cd0787e3213.png

三、总结

该代码生成器,打破传统的CRUD,避免花费太多时间在重复事情上,将更多时间用于学习晋升

该项目对于小白来说可学习技术也有很多,比如前后端分离,跨域解决,三方授权登录,@Validated后端参数校验,简单的redis缓存处理,shiro动态权限配置,前端按钮级别权限控制 等等,后端使用目前企业流行的Spring Boot+MyBatis-Plus技术栈,前端也是较为普遍 学习轻松的vue。对于全栈了解入门也是一个好的demo

本文目前只是给出项目使用介绍流程,后续若有时间,将会给出其中某些技术栈的案例教程

案例demo代码将会存放至:https://gitee.com/zhengqingya/java-workspace

注:实现本代码生成器参考了网上很多前后端教程,以及小编老大肖哥,在这一个月时间里,白天上班,晚上回家利用空闲时间来码代码,其中也是学到了不少东西,现在也分享出来给大家,希望能够帮助到有需要的小伙伴们~

项目源码

觉得还可以的话,请给个❤

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值