后台代码自动生成引擎 auto-code-admin

码农软件 · 软件分类 · 代码生成工具 · 2019-03-05 18:27:04

软件介绍

auto-code-admin

欢迎使用 auto-code-admin 后台代码自动生成引擎 (移动端照样能适配) 演示地址 账号 ztp 密码 111111

项目介绍

为何会发起该项目?

1.权限,角色,用户对于绝大多数系统来说都是一成不变的.而我们每开发一个后台都需要重新一次.每次都在重复造轮子
2.对于业务绝大多数也是围绕这增删改查来进行操作.每次创建一张表.然后我们需要重新写一次增删改查,写虽然简单,不过极度耗时(view,controller,server,serverImpl,dao,xml) 
所以才有了该项目,该项目能帮助你减少60%的工作量,让你专注于业务的实现.

软件架构

1.基于 springboot 2.0.7+mybatis+mysql
2.代码生成使用 auto-code [源码地址](https://gitee.com/ztp/auto-code)
3.模板引擎-> thymeleaf (spring boot不推荐使用jsp jsp在打包的时候会遇到各种问题)
4.前端主要使用layui
5.前端后台框架layuiAdmin  https://github.com/coderyangjie/layuiAdmin

项目模块介绍

auto-code-admin(根节点)
  -auto-code-common ->一些公共的类,以及配置
  -auto-code-sys ->系统设置模块
  -auto-code-charts ->报表模块
  -auto-code-web ->发布模块(该模块聚合以上模块进行发布,如果报表模块不想使用直接在pom.xml将该模块注释掉就好.)

安装教程

1.安装jdk1.8+, mysql5.0+,maven,git 
2.下载源码
3. 导入 auto-code-admin 下的 auto_code.sql 初始化数据库
4. 修改 auto-code-web/application-dev.properties 中的数据库连接以及用户名密码
5. auto-code-admin 打开cmd密令 执行 mvn clean package
6. auto-code-admin/auto-code-web/target 找到jar包 执行 java -jar auto-code-web.jar
7. 访问 http://localhost:8080

使用说明 源码地址

执行成功后将生成 controller,server,serverImpl,dao,xml,list.html,list_detail.html.如果仅仅是单表的增删改查.你将不需要任何改动.直接就可以提交代码.
执行代码如下:
import com.zengtengpeng.generator.bean.StartCode;
import com.zengtengpeng.generator.utils.AutoCodeUtils;

import java.util.Arrays;
import java.util.List;

public class AutoCodeTest {
	public static void main(String[] args) {
		List dataNames= Arrays.asList("test_code");
		StartCode startCode=new StartCode();
		//jdbc连接
		startCode.setJdbc("jdbc:mysql://localhost:3306/auto_code");
		//数据库用户名
		startCode.setUser("root");
		//数据库密码
		startCode.setPassword("111111");
		//需要生成的表明
		startCode.setDataNames(dataNames);
		//生成代码的绝对路径
		startCode.setParentPath("E:\\resource\\workspaceJDB\\auto-code-admin\\auto-code-web");
		//生成代码的父包
		startCode.setParentPack("com.zengtengpeng.test");
		//开始生成
		AutoCodeUtils.startByWebAdmin(startCode);
	}
}			
权限SQL也帮助你生成了.将打印在控制台上:
请注意第一句sql的parent_auth_id的值, 默认我是放在 ->代码生成(id=3) 栏目下的
如果你需要更改请将这个值改成对应的栏目就好
11:40:51.262 [main] INFO com.zengtengpeng.generator.create.impl.WebAdminCreateCode - 权限SQL:请注意表名注释一定要唯一,权限会找不到父ID

INSERT INTO `sys_auth` (`parent_auth_id`,`name`,`sort`,`href`,`icon`,`shows`,`create_time`) VALUES  ('3','测试生成代码','1','testCode/gotoList','layui-icon layui-icon-file-b','0',NOW());

INSERT INTO `sys_auth` (`parent_auth_id`,`name`,`sort`,`href`,`icon`,`shows`,`create_time`) VALUES  ((SELECT id FROM `sys_auth` a WHERE a.name='测试生成代码'),'查询','1','testCode/selectAll','layui-icon layui-icon-search','1',NOW());

INSERT INTO `sys_auth` (`parent_auth_id`,`name`,`sort`,`href`,`icon`,`shows`,`create_time`) VALUES  ((SELECT id FROM `sys_auth` a WHERE a.name='测试生成代码'),'导出','2','testCode/export','layui-icon layui-icon-next','1',NOW());

INSERT INTO `sys_auth` (`parent_auth_id`,`name`,`sort`,`href`,`icon`,`shows`,`create_time`) VALUES  ((SELECT id FROM `sys_auth` a WHERE a.name='测试生成代码'),'编辑','3','testCode/save','layui-icon layui-icon-edit','1',NOW());

INSERT INTO `sys_auth` (`parent_auth_id`,`name`,`sort`,`href`,`icon`,`shows`,`create_time`) VALUES  ((SELECT id FROM `sys_auth` a WHERE a.name='测试生成代码'),'删除','4','testCode/deleteByPrimaryKey','layui-icon layui-icon-fonts-del','1',NOW());

生成代码注意事项

1.创建表结构时一定要写注释!!!,不写注释生成的代码将会没有列名等等一系列问题.写注释这个是约定!
2.获取表名的注释有些版本的mysql获取不了,所以请在主键id上写上表名注释,到时候如果获取不了表名注释我将会从Id上获取
3.目前支持生成 text,date,datetime,textarea,select五种类型的输入框
  3.1 text,date,datetime,textarea 映射机制我是根据数据库的数据类型进行映射的
数据库类型输入框类型
datedate
datetimedatetime
texttextarea
其他text
  3.2:select类型比较特殊,由于数据库没有键值类型. 所以我采取的是在字段注释书写json格式的注释 列: {"name":"状态","1":"启用","0":"禁用"} name为该字段的中文注释,然后在输入框将会生成如下的下拉框

select

完整的数据库实列:

CREATE TABLE `test_code` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '测试生成代码',
  `name` varchar(50) DEFAULT NULL COMMENT '名称',
  `age` int(3) DEFAULT NULL COMMENT '年龄',
  `status` int(2) DEFAULT NULL COMMENT '{"name":"状态","1":"启用","0":"禁用"}',
  `birthday` date DEFAULT NULL COMMENT '生日',
  `remarks` text COMMENT '备注',
  `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COMMENT='测试生成代码'			

进阶篇

如何进行项目集群?

集群非常简单只需要简单的3部就能完成
1.安装redis 下载地址 redis官方是不支持windows的不过有社区版 下载地址
2.使用spring-session将session放入redis中,修改 auto-code-admin/pom.xml
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
  <groupId>org.springframework.session</groupId>
  <artifactId>spring-session-data-redis</artifactId>
</dependency>
3. 修改 auto-code-web/application-dev.properties 配置文件 增加redis配置
#redis
spring.redis.host=127.0.0.1
spring.redis.port=6379
4.到此为止,集群成功

权限机制

本项目采用拦截器管理权限 具体实现 com.zengtengpeng.interceptor.UserInterceptor

1.具体怎么实现?  权限默认采用@RequestMapping映射值作为权限校验.
2.如果两个url想采用一个权限怎么办? 使用 com.zengtengpeng.common.annotation.Auth 注解, 值为 另外一个权限url.这样他们就共享同一个授权了,如果不写值默认只要登录就有该权限.
3.如果该方法不需要登录就能访问怎么办? com.zengtengpeng.common.annotation.Pass 注解标注在方法上.该方法就不需要授权

项目部分截图

pc

登录

主页

权限

用户

用户详情

mobile

登录

菜单

主页

权限

用户

用户详情

本文地址:https://codercto.com/soft/d/699.html

JavaScript权威指南(第6版)

JavaScript权威指南(第6版)

David Flanagan / 淘宝前端团队 / 机械工业出版社 / 2012-4-1 / 139.00元

本书是程序员学习核心JavaScript语言和由Web浏览器定义的JavaScript API的指南和综合参考手册。 第6版涵盖HTML 5和ECMAScript 5。很多章节完全重写,以便与时俱进,紧跟当今的最佳Web开发实践。本书新增章节描述了jQuery和服务器端JavaScript。 本书适合那些希望学习Web编程语言的初、中级程序员和希望精通JavaScript的JavaSc......一起来看看 《JavaScript权威指南(第6版)》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具