一款功能丰富交互式的 Dubbo 脚手架
2019-12-23 本文已影响0人
聪明的奇瑞
DeepEXI Dubbo Scaffold Generator
此脚手架生成器基于Yeoman构建。
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
设计参考
工程结构
各层间领域对象传输规范.
├── 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 的使用可阅读改篇文章 → 点击这里。
... 持续更新 -> 聪明的杰瑞博客