一款功能豐富交互式的 Dubbo 腳手架

DeepEXI Dubbo Scaffold Generator

NPM version
npm download
Build Status
codecov

此腳手架生成器基於Yeoman構建。html

CHANGELOGjava

How To

Getting Started

1. 安裝yeoman

$ npm install -g yo
複製代碼

2. 安裝generator-deepexi-dubbo

$ npm install -g generator-deepexi-dubbo
複製代碼

3. 建立你的應用

經過交互模式建立git

$ mdir {your_project_name}
$ cd {your_project_name}
$ yo deepexi-dubbo
複製代碼

或者使用命令行模式建立github

$ mdir {your_project_name}
$ cd {your_project_name}
$ yo deepexi-dubbo -c
複製代碼

更多幫助信息能夠經過如下命令查看web

$ 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
部署相關 ✅docker ✅filebeat
開發相關 ✅devtools
其它 ✅️actuator ✅configuration-processor

Development Reference

設計參考

《阿里巴巴Java開發手冊》spring

《DDD領域驅動設計》sql

工程結構

各層間領域對象傳輸規範

.
├── 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 的使用可閱讀改篇文章 → 點擊這裏

... 持續更新 -> 聰明的傑瑞博客docker

DDD 領域設計案例

相關文章
相關標籤/搜索