代码拉取完成,页面将自动刷新
同步操作将从 ztp/auto-code-admin 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
欢迎使用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 映射机制我是根据数据库的数据类型进行映射的
数据库类型 | 输入框类型 |
---|---|
date | date |
datetime | datetime |
text | textarea |
其他 | text |
3.2:select类型比较特殊,由于数据库没有键值类型. 所以我采取的是在字段注释书写json格式的注释 列: {"name":"状态","1":"启用","0":"禁用"} name为该字段的中文注释,然后在输入框将会生成如下的下拉框
完整的数据库实列:
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 注解标注在方法上.该方法就不需要授权
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。