精华内容
下载资源
问答
  • java自动生成代码开源
    千次阅读
    2020-07-21 11:30:28

    项目介绍

    一款 Java 语言基于 SpringBoot2.x、Layui、Thymeleaf、MybatisPlus、Shiro、MySQL等框架精心打造的一款模块化、插件化、高性能的前后端分离架构敏捷开发框架,可用于快速搭建后台管理系统,本着简化开发、提升开发效率的初衷,框架自研了一套个性化的组件,实现了可插拔的组件式开发方式:单图上传、多图上传、下拉选择、开关按钮、单选按钮、多选按钮、图片裁剪、富文本编辑器等等一系列个性化、轻量级的组件,是一款真正意义上实现组件化开发的敏捷开发框架,框架已集成了完整的RBAC权限架构和常规基础模块,同时支持多主题切换,可以根据自己喜欢的风格选择想一个的主题,实现了个性化呈现的需求;

    为了敏捷快速开发,提升研发效率,框架内置了一键CRUD代码生成器,自定义了模块生成模板,可以根据已建好的表结构(字段注释需规范)快速的一键生成整个模块的所有代码和增删改查等等功能业务,真正实现了低代码开发,极大的节省了人力成本的同时提高了开发效率,缩短了研发周期,是一款真正意义上实现组件化、低代码敏捷开发框架。

    内置模块

    • 用户管理:用于维护管理系统的用户,常规信息的维护与账号设置。
    • 角色管理:角色菜单管理与权限分配、设置角色所拥有的菜单权限。
    • 菜单管理:配置系统菜单,操作权限,按钮权限标识等。
    • 职级管理:主要管理用户担任的职级。
    • 岗位管理:主要管理用户担任的岗位。
    • 部门管理:主要管理系统组织架构,对组织架构进行统一管理维护。
    • 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。
    • 登录日志:系统登录日志记录查询包含登录异常。
    • 字典管理:对系统中常用的较为固定的数据进行统一维护。
    • 配置管理:对系统的常规配置信息进行维护,网站配置管理功能进行统一维护。
    • 城市管理:统一对全国行政区划进行维护,对其他模块提供行政区划数据支撑。
    • 友链管理:对系统友情链接、合作伙伴等相关外链进行集成维护管理的模块。
    • 个人中心:主要是对当前登录用户的个人信息进行便捷修改的功能。
    • 广告管理:主要对各终端的广告数据进行管理维护。
    • 站点栏目:主要对大型系统网站等栏目进行划分和维护的模块。
    • 会员管理:对各终端注册的会员进行统一的查询与管理的模块。
    • 网站配置:对配置管理模块的数据源动态解析与统一维护管理的模块。
    • 通知公告:系统通知公告信息发布维护。
    • 代码生成:一键生成模块CRUD的功能,包括后端和前端Vue等相关代码。
    • 案例演示:常规代码生成器一键生成后的演示案例。

    软件信息

    核心组件

    • 上传单图
    <widget:uploadSingleImage name="avatar|头像|90x90|admin|建议上传尺寸450x450|450x450" th:value="${info['avatar']}"/>
    
    • 下拉选择
    <widget:singleSelect name="gender|1|性别|name|id" th:data="${USER_GENDER_LIST}" th:value="${info['gender']}?:3"/>
    
    • 部门选择组件
    <widget:complexSelect name="deptId|0|部门|name|id" sql="SELECT id,`name` FROM sys_dept WHERE pid=? AND mark=1 ORDER BY sort ASC;" th:value="${info['deptId']}?:0"/>
    
    • 城市选择组件
    <widget:citySingleSelect th:value="${info['districtId']} ?: 0" limit="3"/>
    
    • 个性化标签组件
    <widget:tagsInput name="tags|1|4" data="['SpringBoot','Layui','MySQL','JQuery','Linux']" th:value="${info['tags']}"/>
    
    • 复选框组件
    <widget:checkboxSingleSelect name="roleIds|name|id" sql="SELECT id,`name` FROM sys_role WHERE mark=1 ORDER BY sort ASC;" th:value="${info['roleIds']}?:[]"/>
    
    • 日期选择组件
    <widget:dateSelect name="birthday|出生日期|date" th:value="${#dates.format(info['birthday'], 'yyyy-MM-dd')}"/>
    
    • 上传文件组件
    <widget:uploadFile name="files|附件|user|5|xls,xlsx,doc,docx|10*1024" th:value="${info['files']}" />
    
    • 开关组件
    <widget:switchCheck name="status" data="正常|禁用" th:value="${info['status']} ?: 1"/>
    
    • 图标选择组件
    <widget:iconPicker name="icon" th:value="${info['icon']}?:'layui-icon-home'"/>
    
    • 下拉树组件
    <widget:treeSelect name="pid|0|上级菜单|name|id" sql="SELECT id,`name`,pid FROM sys_menu WHERE `status`=1  AND type <=3 AND mark=1 ORDER BY pid ASC,id ASC;" th:value="${info['pid']}?:0"/>
    
    • 单选按钮组件
    <widget:radioSelect name="target|name|id" data="1=内链,2=外链" th:value="${info['target']}"/>
    
    • 穿梭组件
    <widget:transfer param="funcIds|0|全部节点,已赋予节点|name|id|220x350" data="1=查询,5=添加,10=修改,15=删除,20=状态,25=批量删除,30=全部展开,35=全部折叠,40=添加子级,45=导出数据,50=导入数据,55=分配权限,60=重置密码" th:value="${info['funcIds']}"/>
    

    特别鸣谢

    感谢MybatisPlus、Layui等优秀开源项目。

    更多相关内容
  • java代码自动生成源码AutoInterface-Java注释处理器 根据带注释的类文件的公共方法生成Java接口。 为类或接口生成Decorator接口 好处 只有一个实现时,无需手动维护接口 帮助诸如Spring之类的框架进行依赖注入 ...
  • java 根据数据表实现增删改查代码自动生成java 根据数据表实现增删改查代码自动生成java 根据数据表实现增删改查代码自动生成
  • java web代码生成

    2020-03-27 20:49:45
    java web开发后台代码自动生成,支持SSH和SSM2大框架,数据库支持MySQL和sqlserver,根据数据库自动生成entity,vo,service,impl,action或者controller,dao,mapper等类,包含常用的增删改查方法,集成了pageheper分页...
  • 通过注释自动生成c ++ JAVA JNI代码生成器支持:JNI标头+源代码,具有自动转换为c ++桥类的Java字符串转换为std :: string的桥c ++类到Java的类
  • java实现生成ppt文件

    2020-07-18 08:00:14
    小例子java实现生成,搞了好久才弄出来的!
  • java 代码自动生成源码
  • Java代码生成

    2021-12-02 18:29:34
    生成代码 生成结果 在很多开源的后台管理系统当中都有代码生成的工具,帮助开发者完成通用代码的生成,比如生成 Controller、Service、Dao 和 XML 文件等,能够帮助开发者生成通用的CRUD 代码。还能帮助开发者...

    目录

    MyBatis-Plus 代码生成器的介绍

    引入依赖

    生成代码

    生成结果


           在很多开源的后台管理系统当中都有代码生成的工具,帮助开发者完成通用代码的生成,比如生成 Controller、Service、Dao 和 XML 文件等,能够帮助开发者生成通用的CRUD 代码。还能帮助开发者生成统一的后台列表页面和表单页面,以方便开发者可以快速的完成自己业务的开发,而忽略那些重复而又繁琐的工作。其实在开发框架中也有一些简单的代码生成的工具,比如接下来要介绍的 mybatis-plus 提供的代码生成。

    MyBatis-Plus 代码生成器的介绍

            引用 MyBatis-Plus 官网的说明,如下:

    AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码,极大的提升了开发效率。

    https://mp.baomidou.com/guide/generator.html#使用教程

    引入依赖

           MyBatis-Plus 官网有较为详细的说明,不过对于刚开始接触的话完全可以通过拿来现成的代码使用。

            使用 SpringBoot 来测试一下 Mybatis-Plus 代码生成的功能。

            SpringBoot 项目中使用代码生成器需要引入一些依赖,依赖如下:

    <!-- MySql -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <scope>runtime</scope>
    </dependency>
    <!-- Lombok -->
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <optional>true</optional>
    </dependency>
    <!-- MyBatis-Plus -->
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <version>3.0.5</version>
    </dependency>
    <!-- 模板引擎 -->
    <dependency>
        <groupId>org.apache.velocity</groupId>
        <artifactId>velocity-engine-core</artifactId>
        <version>2.0</version>
    </dependency>
    <!-- Mybatis-Plus-Generator -->
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-generator</artifactId>
        <version>3.4.1</version>
    </dependency>

    生成代码

            引入上面的依赖以后,下面的代码其实进行简单的修改就可以完成自己的代码生成,非常的方便。

    public class CodeGenerator {
        public static void main(String[] args) {
    
            // 构建一个代码生成对象
            AutoGenerator mpg = new AutoGenerator();
    
            // 1. 全局配置
            GlobalConfig gc = new GlobalConfig();
    
            String separator = File.separator;
            gc.setOutputDir("/Users/xxx/Documents/demo/src/main/java");
            gc.setAuthor("码农UP2U");
            gc.setOpen(false);//打开目录
            gc.setFileOverride(true);//是否覆盖
            gc.setServiceName("%sService");//去Service的I前缀。
            gc.setIdType(IdType.ID_WORKER);
            gc.setDateType(DateType.ONLY_DATE);
            gc.setSwagger2(false);
    
            mpg.setGlobalConfig(gc);
    
            DataSourceConfig dsc = new DataSourceConfig();
            dsc.setUrl("jdbc:mysql://ip:port/data?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai");
            dsc.setDriverName("com.mysql.cj.jdbc.Driver");
            dsc.setUsername("root");
            dsc.setPassword("password");
            dsc.setDbType(DbType.MYSQL);
    
            mpg.setDataSource(dsc);
    
            // 包设置
            PackageConfig pc = new PackageConfig();
    
            pc.setParent("com.example.demo");
            pc.setEntity("entity");
            pc.setMapper("mapper");
            pc.setController("controller");
    
            mpg.setPackageInfo(pc);
    
            // 策略配置
            StrategyConfig strategy = new StrategyConfig();
            strategy.setInclude("ums_member");//表名
            strategy.setNaming(NamingStrategy.underline_to_camel);// 下划线转他驼峰
            strategy.setColumnNaming(NamingStrategy.underline_to_camel);// 列 下划线转脱发
            strategy.setEntityLombokModel(true);//lombok 开启
            strategy.setLogicDeleteFieldName("deleted");
    
            // 自动填充
            TableFill gmtCreate = new TableFill("gmt_create", FieldFill.INSERT);
            TableFill gmtModify = new TableFill("gmt_modified", FieldFill.INSERT_UPDATE);
            ArrayList<TableFill> tableFills = new ArrayList<>();
            tableFills.add(gmtCreate);
            tableFills.add(gmtModify);
    
            strategy.setTableFillList(tableFills);
            // restcontroller
            strategy.setRestControllerStyle(true);
            strategy.setControllerMappingHyphenStyle(true);// localhost:xxx/hello_2
    
            mpg.setStrategy(strategy);
    
            mpg.execute();
        }
    }

            上面的代码中,设置生成文件的路径,设置数据库的连接,设置包名,设置表相关的内容等。代码简单的易懂,就不做过多说明。

    生成结果

            运行上面的代码,来看一下生成的内容,如下图:

    图片

           从图中可以看出,生成的内容有 controller、entity、dao 和 service。基本上省去了我们一些手动需要完成的工作,还是比较方便的。代码有一些部分是通用的,一部分是可能是自定义的,可以将整个代码进行封装,使得使用更加的方便的。

    图片

    展开全文
  • java开发,根据代码自动生成api接口文档工具,支持RESTful风格 预览版 该工具的优势 文档自动生成,减少文档维护的时间和成本 支持复杂的接口请求参数或响应参数,比如对象的多层、互相嵌套 支持多种参数类型(数组...
  • 日历表格面板 [ConfigLine.java] 控制条类 [RoundBox.java] 限定选择控件 [MonthMaker.java] 月份表算法类 [Pallet.java] 调色板,统一配色类 Java扫雷源码 Java生成自定义控件源代码 2个目标文件 Java实现HTTP连接...
  • 目录创建大分类创建功能表生成代码创建module并导入生成的代码修改自己module的pom.xml和ruoyi-admin下的pom.xml运行效果 创建大分类 进入系统管理—》菜单管理,新添一个大分类 创建功能表 在数据库创建自己的功能...

    创建大分类


    进入系统管理—》菜单管理,新添一个大分类

    在这里插入图片描述

    创建功能表


    在数据库创建自己的功能表,根据自己需求来创建。

    在这里插入图片描述

    生成代码


    1. 进入系统工具—》代码生成—》导入,导入刚刚创建的功能表;
    2. 点击编辑修改基本信息和生成信息,可以直接照葫芦画瓢就好;
    3. 点击生成代码并下载到本地,解压生成的代码包,执行里面生成的sql文件,用于更新菜单信息;

    在这里插入图片描述在这里插入图片描述
    这里注意字段描述、字段增删改查以及字段类型,如设置下拉框,需要同时设置字典类型,字典类型可以在后台先添加(一般直接数据库添加更快),字典类型如性别(0男 1女)、使用状态(0禁用 1启用)。

    在这里插入图片描述

    在这里插入图片描述
    以上设置完成点保存,在以下列表点击生成代码、解压,把解压目录下的sql文件执行一下,用于更新菜单,最后直接复制代码、粘贴搞定。
    在这里插入图片描述
    在这里插入图片描述

    创建module并导入生成的代码


    右键new—》project—》maven module创建自己的module,当然了也可以直接导入刚刚生成的代码到默认的module去也行,更加方便;

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    删掉module下main目录下的所有文件,然后复制刚刚生成的代码进来;
    在这里插入图片描述

    导入子模块


    如果已有相关模块,也可以直接导入进来;

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    修改自己module的pom.xml和ruoyi-admin下的pom.xml


    自己module修改如下,根据需求而定,不要复制我的,版本可能不同,看看demo里的版本,对应一下即可。

    <?xml version="1.0"?>
    <project
    	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
    	xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    	<parent>
    		<artifactId>ruoyi</artifactId>
    		<groupId>com.ruoyi</groupId>
    		<version>4.3.1</version>
    	</parent>
    	<modelVersion>4.0.0</modelVersion>
    
    	<artifactId>ruoyi-test</artifactId>
    
    	<description>
    	    test模块
    	</description>
    
    	<dependencies>
    
    		<!--velocity代码生成使用模板 -->
    		<dependency>
    			<groupId>org.apache.velocity</groupId>
    			<artifactId>velocity</artifactId>
    		</dependency>
    
    		<!-- 通用工具 -->
    		<dependency>
    			<groupId>com.ruoyi</groupId>
    			<artifactId>ruoyi-common</artifactId>
    		</dependency>
    
    	</dependencies>
    </project>
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200709212725213.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM1MzUwNjU0,size_16,color_FFFFFF,t_70#pic_center)
    

    ruoyi-admin下的module添加如下

      <!-- 代码生成测试-->
            <dependency>
                <groupId>com.ruoyi</groupId>
                <artifactId>ruoyi-test</artifactId>
                <version>4.3.1</version>
            </dependency>
    

    在这里插入图片描述

    运行效果


    完成以上步骤后,重启一下程序,重新登录后台即可看到自己刚刚创建的功能模块效果了;

    在这里插入图片描述

    若依官网:http://doc.ruoyi.vip/
    特别感谢:若依开源框架

    展开全文
  • 龙果开源-Mybatis代码自动生成工具 项目介绍 基于mybatis-generator,增加了多个插件。 更新日志 2020-01-07添加到公共库 2017-10-15添加Dao层插件(可以当做服务层)-DaoPlugin.java 2017-02-24对配置文件xml增加...
  • 励志做java届最好的文档生成工具,自动解析代码生成api接口文档,前后台分离开发的福音,零代码入侵,零注释入侵 解决的痛点 通常的文档生成工具,都需要开发人员编写注解或注释,代码入侵太强,而且费事,我希望...
  • java 代码自动生成源码 example-backend-java Example with source code automatically generated by PolyGenesis
  • java写的代码生成工具源码

    热门讨论 2012-08-23 14:37:22
    目前该版本可以支持mysql,oracle数据库,生成代码包含bean文件Service文件还有jsp文件 template文件夹里面有四个模版文件(可以修改生成你想要的代码)。 具体配置步骤如下: 一、配置数据库基本信息,如...
  • EasyCode是基于IntelliJ IDEA开发的代码生成插件,支持自定义任意模板(Java,html,js,xml)。只要是与数据库相关的代码都可以通过自定义模板来生成。支持数据库类型与java类型映射关系配置。支持同时生成生成多...
  • java原始生成器源代码生成器 Java代码生成器:此应用程序用于...javapoet”库自动生成基本的Spring Boot CRUD操作的源代码。 <groupId>com.squareup</groupId> <artifactId>javapoet <version>1.10.0 </dependency>
  • 使用简单的Brainstorm格式快速定义ORM,然后立即创建SQL,Java,PHP,Python,Perl甚至C ++等代码来管理所有对象关系。
  • Swagger(http://swagger.io/) 是一款RESTFUL接口的、基于YAML、JSON语言的文档在线自动生成代码自动生成的工具。 swagger 2.0 openapi 3.0 nodejs: 12.13.0 swagger-editor : 3.15.8 swagger-codegen : 2.4.9 ...

    swagger - RESTFUL接口文档在线自动生成、代码自动生成工具详解


    如需转载请标明出处:http://blog.csdn.net/itas109
    QQ技术交流群:129518033

    环境:

    nodejs : 12.13.0

    swagger-editor : 3.15.8(2021-03-04)

    swagger-codegen : 2.4.9(2019-10-14)

    swagger-ui : 3.44.1(2021-03-04)

    完整源码:
    https://github.com/itas109/node-webdev
    https://github.com/itas109/node-webdev/tree/main/code/1.webFramework/2.swagger
    
    https://gitee.com/itas109/node-webdev
    https://gitee.com/itas109/node-webdev/tree/main/code/1.webFramework/2.swagger
    

    前言

    Swagger 是一款RESTFUL接口的、基于YAML、JSON语言的文档在线自动生成、代码自动生成的工具。

    1. RESTful API规范

    swagger使用swagger 2.0(2014-09-08) 规范,其依赖于openapi 3.0版本的规范。

    openapi 规范,是定义一个标准的、与具体编程语言无关的RESTful API的规范。官方文档(中文):OpenAPI 开放API规范

    swagger 2.0规范示例:

    swagger: '2.0' # 语义化版本号规范
    info: # 【必选】API相关的元数据
      title: Swagger Demo # 【必选】应用的名称
      version: 1.0.0 # 【必选】版本信息
      description: # 描述
        Swagger Demo - https://github.com/itas109/node-webdev
      termsOfService: # 服务条款的URL地址
        https://github.com/itas109/node-webdev
      contact: # 联系人信息
        name: itas109
        email: itas109@qq.com
      license: # 协议
        name: MIT License
        url: https://opensource.org/licenses/mit/
    host:  # 服务端host
        127.0.0.1:8080
    basePath: # url基路径
        /v1
    tags: # 元数据的一系列标签
      - name: user
        description: Operations about user
        externalDocs:
          description: user external docs
          url: https://github.com/itas109
    schemes: # 协议,http,https,ws,wss
      - http
      - https
    externalDocs: # 附加的文档
      description: external docs
      url: https://github.com/itas109
    paths: # 【必选】API有效的路径和操作
      /user/login: # 端点的相对路径,路径必须以 / 打头
        get:
          tags: # 标签分类
            - user
          summary: Logs user into the system
          description: ''
          produces:
            - application/json
            - application/xml
          parameters: # 参数 
            - name: username # 【必选】参数的名称
              in: query # 【参数】 入参类型,query, header, path 或 cookie
              description: user name for login # 描述
              required: true # 是否必须
              type: string
            - name: password
              in: query
              description: user password for login
              required: true
              type: string
          responses: # 【必须】返回值
            '200':
              description: json, {"code":0,"message":"success","data":[{"token_type":"bearer","access_token":"adcc4dc09a4f9ac278d019605f00f33c9a08e0e3","expires_in":3600,"refresh_token":"418470a87cb3d9320a092bb550790ae2c13182f1"}]}
              schema:
                $ref: '#/definitions/ApiResponse'
              headers:
                X-Rate-Limit:
                  type: integer
                  format: int32
                  description: calls per hour allowed by the user
                X-Expires-After:
                  type: string
                  format: date-time
                  description: date in UTC when token expires
            '400':
              description: Invalid username/password
              schema:
                $ref: '#/definitions/ApiErrorResponse'
      '/user/{username}':
        get:
          tags:
            - user
          summary: Get user by user name
          description: ''
          produces:
            - application/json
            - application/xml
          parameters:
            - name: username
              in: path
              description: The name that needs to be fetched
              required: true
              type: string
          responses:
            '200':
              description: successful operation
              schema:
                $ref: '#/definitions/ApiResponse'
            '400':
              description: Invalid username supplied
              schema:
                $ref: '#/definitions/ApiErrorResponse'
            '404':
              description: User not found
              schema:
                $ref: '#/definitions/ApiErrorResponse'
          security:
            - user_auth:
                - 'write:user'
                - 'read:user'
            - token: []
            - BasicAuth: []
    securityDefinitions: # 安全定义
      user_auth:
        type: oauth2
        authorizationUrl: localhost:8080/oauth/token
        flow: implicit
        scopes:
          'write:user': modify user in your account
          'read:user': read your user
      token:
        type: apiKey
        name: Authorization
        description: "Authorization: Bearer xxx"
        in: header
      BasicAuth:
        type: basic
    definitions:
      ApiResponse:
        example: {"code":0, "message":"success","data":[{'xxx':'xxx'}]}
        type: object
        properties:
          code:
            type: integer
            format: int32
            description: "System Level Code:\n 0 success \n 100101 system inner error \n 100201 interface maintenance \n 200202 interface disabled \n\n Service Level Code:\n 200101 input params empty \n 200102 input params error \n 200103 no auth"
          message:
            type: string
            description: "code details information"
          data:
            type: string
            description: "return datas array when code equal 0"
      ApiErrorResponse:
        example: {"code":200102, "message":"input params error"}
        type: object
        properties:
          code:
            type: integer
            format: int32
            description: "System Level Code:\n 0 success \n 100101 system inner error \n 100201 interface maintenance \n 200202 interface disabled \n\n Service Level Code:\n 200101 input params empty \n 200102 input params error \n 200103 no auth"
          message:
            type: string
            description: "code details information"
    

    2. swagger editor生成swagger配置文件

    上节中对RESTful API规范做了介绍,本节介绍使用swagger editor进行可视化的生成RESTful API的yaml或json文件。

    2.1 swagger editor使用

    swagger editor的左边可以进行接口定义,右边可以实时看到对应的api信息。

    最后,点击顶部的菜单栏File -> Save as YAML生成yaml文件。


    2.2 swagger editor地址

    https://github.com/swagger-api/swagger-editor

    https://github.com/swagger-api/swagger-editor/archive/v3.15.8.tar.gz

    • 在线编辑:http://editor.swagger.io

    • 本地编辑:

      • git clone https://github.com/swagger-api/swagger-editor.git && cd swagger-editor

      • 双击index.html在浏览器中打开

    +--- swagger-editor
    |   +--- dist
    |   |   +--- swagger-editor-bundle.js
    |   |   +--- swagger-editor-standalone-preset.js
    |   |   +--- swagger-editor.css
    |   |   +--- swagger-editor.js
    |   +--- index.html
    

    3. swagger-codegen生成代码(以服务端为例)

    经过上节我们可以生成RESTful API的yaml文件,本节介绍如何通过yaml文件生成代码(这里以NodeJS服务端为例)。

    3.1 swagger-codegen简介

    swagger-codegen是OpenAPI (f.k.a Swagger) 规范的开源代码生成器,支持 API 客户端, API 服务单和 API 文档。

    • 客户端 : ActionScript , Ada , Apex , Bash , C# , C++ , Clojure , Dart , Elixir , Elm , Eiffel , Erlang , Go , Groovy , Haskell , Java , Kotlin , Lua , Node.js , Objective-C , Perl , PHP , PowerShell , Python , R , Ruby , Rust , Scala , Swift , Typescript
    • 服务端 : Ada , C# , C++ , Erlang , Go , Haskell , Java , Kotlin , PHP , Python , NodeJS , Ruby , Rust , Scala
    • API文档 : HTML , Confluence Wiki
    • 配置文件 : Apache2
    • 其他 : JMeter

    3.2 swagger-codegen生成代码(以NodeJS服务端为例)

    • 查看swagger-codegen支持语言
    $ java -jar swagger-codegen-cli-2.4.9.jar langs
    
    Available languages: [ada, ada-server, akka-scala, android, apache2, apex, aspnetcore, bash, csharp, clojure, cwiki, cpprest, csharp-dotnet2, dart, dart-jaguar, elixir, elm, eiffel, erlang-client, erlang-server, finch, flash, python-flask, go, go-server, groovy, haskell-http-client, haskell, jmeter, jaxrs-cxf-client, jaxrs-cxf, java, inflector, jaxrs-cxf-cdi, jaxrs-spec, jaxrs, msf4j, java-pkmst, java-play-framework, jaxrs-resteasy-eap, jaxrs-resteasy, javascript, javascript-closure-angular, java-vertx, kotlin, lua, lumen, nancyfx, nodejs-server, objc, perl, php, powershell, pistache-server, python, qt5cpp, r, rails5, restbed, ruby, rust, rust-server, scala, scala-gatling, scala-lagom-server, scalatra, scalaz, php-silex, sinatra, slim, spring, dynamic-html, html2, html, swagger, swagger-yaml, swift4, swift3, swift, php-symfony, tizen, typescript-aurelia, typescript-angular, typescript-inversify, typescript-angularjs, typescript-fetch, typescript-jquery, typescript-node, undertow, ze-ph, kotlin-server]
    
    • 查看swagger-codegen的生成代码帮助信息
    java -jar swagger-codegen-cli-2.4.9.jar help generate
    
    • 生成nodejs服务端代码

      generate主要参数:

      -i swagger restful api文件的路径,url或本地文件

      -l 生成客户端代码的语言,该参数为必须

      -o 生成文件的位置(默认当前目录)

    java -jar swagger-codegen-cli-2.4.9.jar generate -i swagger.yaml -l nodejs-server -o samples
    
    +--- samples
    |   +--- .swagger-codegen
    |   |   +--- VERSION
    |   +--- .swagger-codegen-ignore
    |   +--- api
    |   |   +--- swagger.yaml
    |   +--- controllers
    |   |   +--- User.js
    |   +--- index.js
    |   +--- package.json
    |   +--- README.md
    |   +--- service
    |   |   +--- UserService.js
    |   +--- utils
    |   |   +--- writer.js
    

    3.3 swagger-codegen地址

    +--- swagger-codegen
    |   +--- gen.bat
    |   +--- gen.sh
    |   +--- swagger.yaml
    |   +--- swagger-codegen-cli-2.4.9.jar
    

    https://github.com/swagger-api/swagger-codegen
    https://repo1.maven.org/maven2/io/swagger/swagger-codegen-cli/2.4.9/swagger-codegen-cli-2.4.9.jar

    java Version 8 Update 271 (2020-10-20)
    https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

    4. swagger-ui

    4.1 swagger-ui简介

    上节中的swagger-codegen生成的nodejs-server代码运行后也可以查看在线API文档。

    本节中的swagger-ui是无依赖的在线API文档,其仅包含HTML、JS和CSS。

    4.2 swagger-ui使用

    +--- swagger-ui
    |   +--- favicon-16x16.png
    |   +--- favicon-32x32.png
    |   +--- index.html
    |   +--- swagger-ui-bundle.js
    |   +--- swagger-ui-standalone-preset.js
    |   +--- swagger-ui.css
    |   +--- swagger-ui.js
    

    index.html修改

    SwaggerUIBundle({
        "url": "swagger.yaml", // 本文件相同目录下的本地文件,也可以为远程文件
        "validatorUrl": false, // 不校验
    })
    

    运行

    cd swagger-ui
    http-server -p 8080
    

    4.3 swagger-ui地址

    https://github.com/swagger-api/swagger-ui

    https://github.com/swagger-api/swagger-ui/archive/v3.44.1.tar.gz


    License

    License under CC BY-NC-ND 4.0: 署名-非商业使用-禁止演绎

    如需转载请标明出处:http://blog.csdn.net/itas109
    QQ技术交流群:129518033


    Refrence:

    1. https://swagger.io/specification/
    2. https://github.com/fishead/OpenAPI-Specification
    展开全文
  • EasyFSM 旨在为有限状态机自动生成代码,特别是针对游戏中的 NPC 行为编程。 使用此工具,您只需要编辑一个 .fsm 文件即可简洁地描述状态机。 它将根据 .fsm 文件为您生成 Java 代码。 此外,还可以为 GraphiZ 创建...
  • 代码自动生成

    2018-05-16 16:40:30
    根据数据库表结构SQL脚本文件 ,自动生成JAVA代码. 如 ,相应的: JAVA实体、SQL语句、HTML标签和能生成测试数据的工具类.还额外增加了纯Map类型的SQL操作 , 因为JSON转Map是非常容易且不容易丢失数据的. 我们都知道,...
  • 本软件是无垠式java通用代码生成器0.8(Code Name:Trinity 崔妮蒂)的全部源码 1) 开发环境是 Java 7 2) 开发工具 Eclipse JEE版 3) 全部源码在GPL v2版条款下开源,GPL v2的文本记录在gpl2.txt中 4) 本软件包含三个...
  • 如何自动生成SpringBoot项目代码

    千次阅读 2021-11-23 10:40:28
    自动生成代码3.代码及sql文件链接     已经工作一段时间啦!首先是从后端开发开始入手的,前端也是在自学阶段(边学边问我身边的同事大佬),努力是往全栈积极靠拢。其实在我们写后端接口代码,像本人之前所写的...
  • Java XML Helper-开源

    2021-05-14 14:32:35
    该实用程序用于根据XML结构定义(DTD&Schema)创建Java对象模型,并自动生成智能代码来处理给定的XML文件。 开发人员不再需要编写繁琐的代码来处理XML。
  • Machi代码生成器是自动化工具,可以生成PHP代码以显示/编辑HTML中MySQL表。
  • 使用Playwright无需写一行代码,我们只需手动操作浏览器,它会录制我们的操作,然后自动生成代码脚本。 下面就是录制的命令codegen,仅仅一行。 python -m playwright codegen codegen的用法可以使用–help查看,如
  • SpringBoot JPA 自动生成代码 (一) 生成实体类

    万次阅读 多人点赞 2019-09-28 10:15:31
    现在换了SpringBoot,自动生成代码使用的是人人开源项目修改来的,可以直接生成简单的CRUD代码和HTML页面。 一次偶然的机会,帮群里一个老弟看代码时,发现他们自动生成代码是用的JPA,之前听说过这个,但是没有用过...
  • 一款Java语言基于SpringBoot2.x、Layui、Thymeleaf、MybatisPlus、Shiro、MySQL等框架精心打造的一款模块化、插件化、高性能的前后端分离架构敏捷开发框架,可用于快速搭建后台管理系统,本着简化开发、提升开发效率...
  • Mybatis之代码自动生成工具

    千次阅读 2022-01-30 09:34:17
    在一篇公众号文章中看到了一款代码自动生成开源项目mybatis-generator-gui,下面对其进行尝试记录,以便在某些场景进行应用。 mybatis-generator-gui项目在github上的地址为:...
  • java2web-开源

    2021-04-25 04:37:48
    java2web是一个Java到html源代码转换器,具有多种功能,包括CSS定制,轮廓生成自动Javadoc喜欢,选择性突出显示等等。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 164,253
精华内容 65,701
关键字:

java自动生成代码开源

友情链接: qiyidian.rar