美文网首页技术中台
一款功能丰富交互式的 Dubbo 脚手架

一款功能丰富交互式的 Dubbo 脚手架

作者: 聪明的奇瑞 | 来源:发表于2019-12-23 23:01 被阅读0次

    DeepEXI Dubbo Scaffold Generator

    此脚手架生成器基于Yeoman构建。

    CHANGELOG

    How To

    Getting Started

    1. 安装yeoman

    $ npm install -g yo
    

    2. 安装generator-deepexi-dubbo

    $ npm install -g generator-deepexi-dubbo
    

    3. 创建你的应用

    通过交互模式创建

    $ mdir {your_project_name}
    $ cd {your_project_name}
    $ yo deepexi-dubbo
    

    或者使用命令行模式创建

    $ mdir {your_project_name}
    $ cd {your_project_name}
    $ yo deepexi-dubbo -c
    

    更多帮助信息可以通过以下命令查看

    $ yo deepexi-dubbo --help
    

    功能一览

    可选项

    类型
    配置中心 ✅️Apollo ☑️Disconfig ✅️Spring-Cloud-Config
    消息队列 ✅RabbitMQ ☑️RocketMQ Kafka
    注册中心 ✅zookeeper ✅nacos
    任务调度 ☑️ES Job ☑️XXL-Job ☑️SiaTask ☑️Quartz
    RDBMS ✅MySQL ☑️PG SQL ☑️SQL Server
    NoSQL ✅️Redis ☑️MongoDB
    连接池 ✅Druid
    权限控制 ☑️Shiro ☑️Spring Security
    分布式事务 ☑️Seata
    APM ☑️SkyWalking ☑️Zipkin ☑️PinPoint
    分库分表 ☑️Sharding-JDBC ☑️MyCAT
    服务器 ✅Tomcat ☑️Jetty ✅Undertow
    JSON解析 ✅Jackson ☑️FastJson ☑️Gson
    模板引擎 ✅Thymeleaf ☑️Freemarker
    对象存储 ☑️AliOSS ☑️FastDFS ☑️TencentOSS ☑️QiNiuOSS
    ORM ✅MybatisPlus ☑️JPA
    日志系统 ✅Logback ☑️Log4j2
    Bean转换器 ✅SpringMVC Converter ✅MapStruct
    MVC ✅SpringMVC
    WebSocket ☑️Spring Boot Websocket
    DeepEXI产品 ☑️sPaaS

    固有项

    类型
    Java版本 ✅JDK1.8
    开发框架 ✅springfox(swagger) ✅lombok ✅guava ✅common-lang3
    测试框架 ✅junit ✅️jfairy ✅mockito ✅️jacoco ✅hamcrest ☑️mockneat ☑️mockserver
    部署相关 ✅docker ✅filebeat
    开发相关 ✅devtools
    其它 ✅️actuator ✅configuration-processor

    Development Reference

    设计参考

    《阿里巴巴Java开发手册》

    《DDD领域驱动设计》

    工程结构

    各层间领域对象传输规范
    .
    ├── 1.docs  // 与项目相关的文档
    │   ├── guides  // 指导文档
    │   │   ├── dev_reference.md
    │   │   ├── quickly_start.md
    │   │   └── reference.md
    │   └── sql     // 数据库sql脚本
    │       └── v1.0.0
    ├── deepexi-dubbo-api
    │   ├── pom.xml
    │   └── src
    │       └── main
    │           └── java
    │               └── com
    │                   └── deepexi
    │                       └── api                 // RPC-API层对外暴露的声明式接口,以 XXXApi 结尾
    │                           └── model           // API层方法入参与出参模型
    │                               └── dto         // 数据传输对象,供其它服务 RPC 调用
    │                               └── vo          // 显示层对象,供其它服务  HTTP  调用
    │                               └── query       // 数据查询对象
    ├── deepexi-dubbo-provider
    │   ├── pom.xml
    │   └── src
    │       └── main
    │           ├── java
    │           │   └── com
    │           │       └── deepexi
    │           │           ├── api         // RPC-API层对外暴露的声明式接口实现,以 XXXApiImpl 结尾
    │           │           │   └── impl    
    │           │           ├── aop         // 切面
    │           │           ├── config      // 应用相关配置
    │           │           │   └── web
    │           │           ├── constant    // 常量定义
    │           │           ├── controller  // 请求处理web层
    │           │           ├── converter   // bean转换器
    │           │           ├── model       // 业务各层方法入参与出参模型
    │           │           │   ├── dto     // 数据传输对象(data transfer object)
    │           │           │   ├── entity  // 数据源对象(do)
    │           │           │   ├── query   // 查询对象
    │           │           │   └── vo      // 视图对象(view object)
    │           │           ├── domain      // 领域逻辑层
    │           │           │   ├── entity  // 领域实体
    │           │           │   └── manager // 领域实体管理
    │           │           ├── enums       // 枚举类
    │           │           ├── exception   // 异常类
    │           │           ├── extension   // 扩展,如自定义注解
    │           │           ├── mapper      // DAO 层
    │           │           ├── remote      // 远程服务调用
    │           │           ├── repo        // 仓储层(repository)
    │           │           ├── service     // 业务逻辑层
    │           │           │   └── impl
    │           │           ├── util        // 工具类
    │           │           └── StartupApplication.java     // 应用启动入口
    │           └── resources
    │               ├── META-INF
    │               │   └── spring-devtools.properties      // devtools元数据
    │               ├── application.yml             // 通用配置文件
    │               ├── application-dev.yml         // 开发环境配置文件
    │               ├── application-local.yml       // 本地环境配置文件
    │               ├── application-prod.yml        // 生产环境配置文件
    │               ├── application-qa.yml          // 测试环境配置文件
    │               ├── bootstrap.yml
    │               └── mapper           // mybatis mapper相关
    │               └── db               // 数据库 SQL 增量文件
    ├── .gitignore
    ├── build.sh        // 项目构建脚本
    ├── commitlint.config.js
    ├── common.sh
    ├── Dockerfile
    ├── entrypoint.sh
    ├── filebeat.yml
    ├── package.json
    └── pom.xml
    ├── README.md       // 帮助文档
    ├── run.sh          // 运行脚本
    ├── scaffold.md     // 脚手架信息
    ├── start-code.sh   // 项目启动脚本
    ├── start-fb.sh     // filebeat启动脚本
    ├── LICENSE         // 协议信息
    

    学习文档

    • Dubbo:Dubbo 是一款高性能、轻量级的开源 Java RPC 框架,你可以点击 → Dubbo 官方文档 了解学习它。
    • Mybatis-Plus:MyBatis-Plus 是一个 MyBatis 的增强工具,简化开发、提高了效率,你可以点击 → Mybatis-Plus 官方参考手册 了解学习它。
    • 参数校验:通常我们需要对请求传递的参数进行校验,你可以通过这篇文章学习它 → 参数校验
    • Lombok:Lombok 提供了一些注解来帮助我们简化消除一些必须有但显得臃肿的 java 代码,你可以通过这篇文章学习它 → Lombok
    • 单元测试:SpringBoot 单元测试与 Mockito 的使用可阅读改篇文章 → 点击这里

    ... 持续更新 -> 聪明的杰瑞博客

    DDD 领域设计案例

    相关文章

      网友评论

        本文标题:一款功能丰富交互式的 Dubbo 脚手架

        本文链接:https://www.haomeiwen.com/subject/iuotoctx.html