auto-code-admin

后台代码自动生成引擎
授权协议 LGPL
开发语言 Java
所属分类 程序开发、 代码生成工具
软件类型 开源软件
地区 国产
投 递 者 杭柏
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

auto-code-admin

欢迎使用 auto-code-admin 后台代码自动生成引擎 演示地址 账号 ztp 密码 111111

 

项目实现的功能介绍

1.用户,角色,权限管理(权限控制到按钮)

2.图片管理

3.操作日志(针对于用户,每次点击的记录都会被记录)

4.报表管理

5.代码生成 (支持可视化生成单表一对一一对多 ,多对多代码.)

项目的优势在哪里

1.目前市面上的代码生成工具绝大多数仅仅支持生成单表,该项目支持 单表一对一一对多 ,多对多 以及所对应的页面生成.大大简化了开发的工作量

2.该项目仅仅只是帮你生成单表以及多表的增删改查,不做任何底层的改动.只要你知道怎么使用  spring boot+mybatis 技术.就能看懂代码

什么情况选择该项目

1.该项目前后台代码一起生成.如果你是做后台.页面展示比较固定.该项目非常适合你

2.如果你们采用前后台分离.或者开发的页面模板不固定.请使用 auto-code 该项目. 这个项目只生成接口适用性很广。spring boot 项目和传统的 javaweb 项目都适用.不管是一次开发还是二次开发, 只需要简单的集成一个 jar 包以及少量的配置.就能生成代码

为何会发起该项目?

绝大多数时候我们都是在做增删改查.每次创建一张表.然后我们需要重新写一次增删改查, 写虽然简单,不过极度耗时(controller,server,serverImpl,dao,xml) 所以才有了该项目,该项目能帮助我们减少后台开发的 80%的工作量,让你专注于业务的实现.

软件架构

1.基于 springboot 2.0.7+mybatis+mysql
2.基于代码生成引擎做了页面的生成扩展 auto-code [源码地址](https://gitee.com/ztp/auto-code)
3.模板引擎-> thymeleaf 
4.前端主要使用layui
5.前端后台框架layuiAdmin  https://github.com/coderyangjie/layuiAdmin

项目模块介绍

auto-code-admin(根节点)
  -auto-code-generator  代码生成配置
  -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

代码生成教程

登录之后点击 代码生成页面.然后就可以生成代码了 更多配置请参见

生成代码注意事项

1.多表支持无限级联生成. 比如 用户和收货地址对应,用户表和班级对应...

2.创建表结构时如果写上表与字段的注释将大大增加程序的可读性.我会将注释写到 bean 上面. 以及页面上.没有写注释还需要页面修改对应的值.会加大工作量.举例:

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.如果注释为 json 键值对字符串我将会在实体类生成一个字典方法 如: {"name":"状态","1":"启用","0":"禁用"} 将会在实体类里面生成如下,同时页面展示的名称将是 "状态"

public String getStatus_(){
    if(MyStringUtils.isEmpty(status)){
         return "";
    }else if(status.equals("1")){
        return "启用";
    }else if(status.equals("0")){
        return "禁用";
    }
    return "";
}

页面展示 

进阶篇

如何进行项目集群

集群非常简单只需要简单的几部就能完成

1.安装 redis

2.修改 auto-code-admin/pom.xml

<dependency>
    <groupId>com.zengtengpeng</groupId>
    <artifactId>redisson-spring-boot-starter</artifactId>
    <version>1.0.2</version>
</dependency>

3.修改 auto-code-web/application-dev.properties 配置文件 增加 redis 配置

#单Redis节点模式
redisson.singleServerConfig.address=127.0.0.1:6379
server.port=8070

4.在启动类上面加上 @EnableRedissonHttpSession 注解

@SpringBootApplication
@EnableRedissonHttpSession
public class RedissonApplication {

    public static void main(String[] args) {
        SpringApplication.run(RedissonApplication.class, args);
    }

}

5.为何不使用 spring-boot-starter-data-redis 做集群?

用 spring-boot-starter-data-redis 做集群也是可以的,不过该项目使用的是jedis客户端做的集群, 往往项目一旦做了集群意味着要开始做分布式锁了.jedis在2.10.6版本以下会造成死锁. 之后才增加了一个一个方法修复这个问题,然后这个锁只是单机的.redlock他是没有实现的. 真正实现了redlock 的只有 redssion. 本项目就是在  redssion 上做的一个 starter. 只需要一个简单的注解 @Lock 就是实现 可重入锁,公平锁,联锁,红锁,读写锁.支持各种集群模式.同时也支持 MQ ,以及存储数据. 详情请参见: redisson-spring-boot-starter 源码地址

权限机制的实现

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

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

配置参数介绍

基础请参照参数 auto-code,admin 在基础参数的基础上扩展了两个特有的参数

参数名 默认值 介绍
authParentId 添加权限到表的父id.如果为空则不自动生成权限
thymeleafPath templates thymeleaf 放置页面的文件目录

如何升级

1.下载项目后,自己的代码请放到 auto-code-web子模块或者自己重新新建模块
2.更新请将 auto-code-common,auto-code-generator,auto-code-sys 覆盖成最新的代码就行.
3.如果数据库有更新我会在上面更新介绍更新的SQL文件

项目部分截图

pc

mobile

  • RabbitMQ的一个问题,我的解决办法是 1、清空队列 2、给用户分配权限(通常是这个问题) 一、队列清空 输入命令: rabbitmqctl list_queues 查看所有队列 接下来 1、执行 rabbitmqctl stop_app 关闭应用的命令为:2、 2、rabbitmqctl reset 清除队列 3、rabbitmqctl start_app 启动队列 4、再次查看 rabbi

  • laravel-admin 1,自定义工具 (1)打开app/Admin/bootstrap.php:追加一下代码 use Encore\Admin\Facades\Admin; Admin::navbar(function (\Encore\Admin\Widgets\Navbar $navbar) { $navbar->right(new \App\Admin\Extensions\

  • 登录-获取token令牌操作实现 src/views/login/index.vue <template> <div class="login-container"> <el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form" auto-complete="on" label-p

  • 1 Basis 1. Unix操作 更改口令 passwd eg. passwd orap34看当前路径 pwd 看sap或者oracle的进程 eg. ps -ef|grep sap或者 ora看命令的使用方法,相当于DOS中的help命令 eg. man xxx更改当前用户 su eg. su – orap34查看cluster lssrc –g cluster看文件大小 df –k看有哪些用

  • 最近也是完成了公司招聘管理系统后台的前端开发,项目已经开始测试了近期估计就会交付使用。一直是一个人在做,配合两个后端,说实话这种从很多不会到一个个独立debug解决问题到最后终于完成项目的感觉真的太有成就感了,看了一下项目开发日志写了一万多字了,现在回过头看之前踩过的坑其实都是一些很简单的错误,也是好笑当初怎么那么笨(准确来说其实是没怎么用过),特此记录一下,完成了第一个成熟的作品。 ------

 相关资料
  • 问题内容: 我正在寻找一种基于类中定义的字段为现有Java源代码文件中的新方法自动生成源代码的方法。 本质上,我希望执行以下步骤: 读取并解析 遍历源代码中定义的所有字段 添加源代码方法 保存(理想情况下,保留现有代码的格式) 哪些工具和技术最适合完成此任务? 编辑 我不想在运行时生成代码;我想扩充现有的Java 源代码 问题答案: 用自动生成的代码修改相同的Java源文件是维护的噩梦。考虑生成一

  • 我在一个自动生成的代理后面。 我已经配置了设置。xml来使用这个代理,但它仍然不起作用。Android SDK可以很好地使用我设置的同一个代理。 我还能做些什么让maven工作? 错误: 如何获取我的NTLM身份验证凭据? 这是输出消息。在我的wpad中。dat(从我获取代理数据的地方),我没有指定的用户名和密码。。。

  • 我正试图用我的MERN stack web应用程序自动化构建过程。 目前,我使用CodePipeline,它: 从GitHub获取我的代码作为源代码 使用CodeBuild(Ubuntu 2.0)运行构建 并将其部署到我的Elastic BeanStalk环境中 步骤1 在尝试使用CodeBuild之后,即使客户端似乎完全按照日志进行构建,前端似乎也不会更新。 以下是我CodeBuild项目的一些

  • auto-code 欢迎使用auto-code代码自动生成引擎.2.1.0 再次升级.现在生成代码不再需要书写yaml文件.直接可以通过页面生成 单表, 一对一, 一对多 ,多对多代码 源码地址 代码生成演示地址 项目介绍 项目的优势在哪里 1.目前市面上的代码生成工具绝大多数仅仅支持生成单表,该项目支持 单表, 一对一, 一对多 ,多对多 代码生成.大大简化了开发的工作量 2.只要目前你的项目采

  • 您需要使用不同的颜色装饰HTML页面。 HTML5提供了一系列属性,可用于设置背景颜色,字体颜色等。 要在HTML5页面中使用颜色,您需要有效的颜色代码。 以下两个工具可帮助您生成有效的HTML5颜色代码。 Java Servlet颜色选择器 单击您喜欢的颜色并拾取要在HTML代码或CSS中使用的等效颜色代码。 此调色板生成的所有代码都将使用Hexa。 JQuery颜色选择器 单击您喜欢的颜色并拾

  • 本文向大家介绍django admin 后台实现三级联动的示例代码,包括了django admin 后台实现三级联动的示例代码的使用技巧和注意事项,需要的朋友参考一下 在刚进公司的时候,要写一个需求,使用django的admin站点管理,实现一个二级联动的功能,因为要用到django自带的页面,因为不是自定义的,不能直接添加js代码。根据我自己的研究简单的记录一下大概步骤。 项目创建流程略过,这里