技术中台

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

2019-12-23  本文已影响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         // 协议信息

学习文档

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

DDD 领域设计案例

上一篇下一篇

猜你喜欢

热点阅读