> Spring Cloud Alibaba 微服务版本地址:https://gitee.com/zhengqingya/small-tools
### 一、前言
最近花了一个月时间完成了一套基于Spring Boot+Vue+Shiro前后端分离的代码生成器,目前项目代码已基本完成
#### 止步传统CRUD,进阶代码优化:
该项目可根据数据库字段动态生成 **controller、mapper、service、html、jsp、vue、php、.py ...** 等各种类型代码,采用 **velocity** 模板引擎在页面动态配置生成代码,前后端动态权限配置,前端权限精确到 **按钮** 级别,后端权限精确到 **uri** 上,QQ授权第三方单用户登录...等
#### 基本环境:
1. JDK 1.8
2. IDEA 2019.2
3. Redis 5.0.5
4. MySQL 5.7
5. Nginx 1.17.1
6. Docker 18.09.7
7. Node.js 10.15.3
#### 项目使用技术栈:
前端:Vue + Axios
后端:Spring Boot 、 MyBatis-Plus
缓存:Redis
权限:Shiro
.......
#### 项目部署
参考: [docker-compose部署项目到服务器](https://zhengqing.blog.csdn.net/article/details/103068220)
### 二、代码生成器介绍
###### 线上体验地址: [http://www.zhengqingya.com:8100/code-generator/dashboard](http://www.zhengqing520.com:8100/code-generator/dashboard)
![在这里插入图片描述](https://images.gitee.com/uploads/images/2019/0922/140826_05b3d0de_1988119.png)
#### 1、登录:
测试账号:test 密码:123456
> 由于权限问题 线上开放的权限仅只是代码生成器那一部分,需要权限控制、系统日志等功能可fork源码参考~
三方登录目前暂支持QQ授权登录,默认权限只有代码生成器模块,登录过后,30分钟内不进行操作将自动下线,同一账号在别处登录将被挤下线,点击头像在个人信息中可自行修改账号、密码、昵称
![在这里插入图片描述](https://images.gitee.com/uploads/images/2019/0922/140826_d562c271_1988119.png)
#### 2、代码生成器
###### ① 项目管理
![在这里插入图片描述](https://images.gitee.com/uploads/images/2019/0922/140826_e1ce76fd_1988119.png)
新建一个项目后,编辑项目包,这里和我们ide打开一个项目下面的包层次类似,后面生成的代码也将存放在此树包目录下,可以根据自己的需求来灵活配置建包
![在这里插入图片描述](https://images.gitee.com/uploads/images/2019/0922/140826_85ee2c97_1988119.png)
###### ② 初始模板
![在这里插入图片描述](https://images.gitee.com/uploads/images/2019/0922/140826_1fd6cdbf_1988119.png)
这里可以选择给自己的项目添加一个初始模板,在`项目模板管理`处可选择项目进行一键新增生成对应的模板
![在这里插入图片描述](https://images.gitee.com/uploads/images/2019/0922/140826_e847b34e_1988119.png)
生成规则:根据`项目管理`中的包名与`初始模板`中的模板类型名对应上即可生成,不对应的即不会处理~
###### ③ 项目模板管理
列表页面和`初始模板`列表页面类型,不同的是新增时需要选择项目哦,后面的代码生成将会依照这里配置的代码模板动态生成!
![在这里插入图片描述](https://images.gitee.com/uploads/images/2019/0922/140826_10c79735_1988119.png)
于是乎,整个代码生成的精髓就在乎这里自己项目所配置的模板哦,这里也给出了可以参考配置的模板数据
> 数据源配置信息,要在根据数据库字段生成一次代码后才拥有数据可以查看哦,不然会是空数据!
![在这里插入图片描述](https://images.gitee.com/uploads/images/2019/0922/140826_017bb1cd_1988119.png)
ex: `${author}` 对应生成 `zhengqing`
`${package.input}` 对应生成 `com.zhengqing.modules.system.dto.input`
![在这里插入图片描述](https://images.gitee.com/uploads/images/2019/0922/140827_2bee52d0_1988119.png)
另外就需要参考 `Velocity` 模板引擎的基本语法使用了
这里再例出一个小编配置的实体类模板吧
> **温馨小提示**:在项目的sql中保存有小编代码生成器项目中配置的项目模板以供参考哦~
```java
package ${package.entity};
#foreach($pkg in ${table.importPackages})
import ${pkg};
#end
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* <p> ${table.comment} </p>
*
* @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})<${entity}>#end {
#elseif(${activeRecord})
public class ${entity} extends Model<${entity}> {
#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
}
```
###### ④ 数据库管理
1. 连接数据库
![在这里插入图片描述](https://images.gitee.com/uploads/images/2019/0922/140827_bdefc7fa_1988119.png)
这里便是配置数据库连接信息了,这里小编给出一个开放的数据库可供连接测试使用,希望读者不要乱搞哦
数据库连接地址:`www.zhengqing520.com:3306` 用户名:`hello` 密码:`root`
可以在本地连接小编给出的数据库 在里面新建表然后在页面配置连接后选择表测试生成哦~
![在这里插入图片描述](https://images.gitee.com/uploads/images/2019/0922/140827_7066f252_1988119.png)
2. 选择表
![在这里插入图片描述](https://images.gitee.com/uploads/images/2019/0922/140827_dc3245f4_1988119.png)
3. 生成代码或修改远程数据库注释信息,这里为了安全考虑未做新增字段,删除字段等功能,如有兴趣,可fork小编源码自行修改其功能
![在这里插入图片描述](https://images.gitee.com/uploads/images/2019/0922/140827_ddb30dc8_1988119.png)
#### 3、系统管理
###### ① 用户管理
这里不多说,就是一些基础信息
###### ② 角色管理
1. 将指定的角色分配给指定的用户
![在这里插入图片描述](https://images.gitee.com/uploads/images/2019/0922/140827_8a5c07c6_1988119.png)
2. 分配指定的权限给该角色
![在这里插入图片描述](https://images.gitee.com/uploads/images/2019/0922/140827_7259aa58_1988119.png)
###### ③ 菜单管理
在这里动态配置后端uri请求权限与前端按钮权限
![在这里插入图片描述](https://images.gitee.com/uploads/images/2019/0922/140827_9a73ad19_1988119.png)
###### ④ 系统日志
![在这里插入图片描述](https://images.gitee.com/uploads/images/2019/0922/140827_d5572a85_1988119.png)
### 三、总结
1. 该代码生成器,打破传统的CRUD,避免花费太多时间在重复事情上,将更多时间用于学习晋升
2. 该项目对于小白来说可学习技术也有很多,比如`前后端分离`,`跨域解决`,`三方授权登录`,`@Validated后端参数校验`,`简单的redis缓存处理`,`shiro动态权限配置`,`前端按钮级别权限控制` 等等,后端使用目前企业流行的`Spring Boot`+`MyBatis-Plus`技术栈,前端也是较为普遍 学习轻松的`vue`。对于全栈了解入门也是一个好的demo
3. 本
没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
收起资源包目录
SpringBoot 集成 Shiro 实现动态uri权限 (506个子文件)
api-Dockerfile 243B
.babelrc 313B
nginx.conf 1KB
fast_client.conf 65B
index.css 414KB
skin.min.css 42KB
visualblocks.css 5KB
content.min.css 4KB
content.inline.min.css 3KB
prism.css 2KB
waves.css 825B
Dockerfile 412B
.dockerignore 33B
.editorconfig 243B
tinymce.eot 18KB
tinymce-small.eot 9KB
.eslintignore 38B
401.gif 160KB
loader.gif 3KB
smiley-cool.gif 354B
smiley-wink.gif 350B
smiley-smile.gif 344B
smiley-laughing.gif 343B
smiley-foot-in-mouth.gif 342B
smiley-frown.gif 340B
smiley-kiss.gif 338B
smiley-surprised.gif 338B
smiley-undecided.gif 337B
smiley-yell.gif 336B
smiley-innocent.gif 336B
smiley-embarassed.gif 331B
smiley-cry.gif 329B
smiley-tongue-out.gif 328B
smiley-sealed.gif 323B
smiley-money-mouth.gif 321B
object.gif 152B
anchor.gif 53B
trans.gif 43B
.gitignore 362B
.gitignore 237B
.gitignore 176B
index.html 777B
favicon.ico 1KB
ojdbc6-1.0.0.jar 2.01MB
fastdfs_client_v1.20.jar 87KB
MyConfigBuilder.java 29KB
TimeUtil.java 25KB
ProjectServiceImpl.java 17KB
DateTimeUtils.java 15KB
MyGenerator.java 14KB
CodeJdbcDaoImpl.java 11KB
IdCardValidatorUtils.java 10KB
QQLoginController.java 10KB
LoginController.java 8KB
IpUtils.java 7KB
ShiroConfig.java 7KB
ShiroServiceImpl.java 7KB
ProjectController.java 7KB
DatabaseServiceImpl.java 7KB
Server.java 6KB
UserServiceImpl.java 6KB
FileUtils.java 6KB
ZipFileUtils.java 5KB
ProjectTemplateController.java 5KB
SysUserController.java 5KB
ShiroRealm.java 5KB
SysMenuController.java 5KB
MyEasyCodeTest.java 5KB
LogRequestFilter.java 5KB
MyGlobalExceptionHandler.java 5KB
ShiroUtils.java 5KB
ProjectTemplateServiceImpl.java 4KB
DatabaseController.java 4KB
FieldRepeatValidatorUtils.java 4KB
User.java 4KB
SysRoleMenuController.java 4KB
WebConfig.java 4KB
ApiResult.java 4KB
SysUserRoleController.java 4KB
MyPermissionsAuthorizationFilter.java 4KB
SystemLogAspect.java 4KB
ApplicationTests.java 4KB
BsTemplateController.java 3KB
SwaggerConfiguration.java 3KB
Arith.java 3KB
SysLogController.java 3KB
SysRoleController.java 3KB
FastDfsApiUtils.java 3KB
TokenCheckFilter.java 3KB
MyStringUtils.java 3KB
Database.java 3KB
BsTemplateServiceImpl.java 3KB
MyMetaObjectHandler.java 3KB
TreeBuilder.java 3KB
Project.java 2KB
Menu.java 2KB
CorsConfig.java 2KB
IndexController.java 2KB
MD5Utils.java 2KB
TableInfo.java 2KB
共 506 条
- 1
- 2
- 3
- 4
- 5
- 6
远航灯塔
- 粉丝: 3
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0