关于java:DDD领域驱动设计DDD开源框架xtoonboot

42次阅读

共计 1412 个字符,预计需要花费 4 分钟才能阅读完成。

开源地址:https://gitee.com/xtoon/xtoon-boot

官网:http://xtoon-boot.xiangtoon.com

在线演示:http://xtoon-boot.demo.xiangtoon.com

如果有什么问题或倡议能够加群(QQ:130950009),交换技术,分享教训。

为何抉择 xtoon-boot

  • 解决编写过程式和事务代码,造成前期保护逻辑凌乱、保护老本高的痛点;
  • 摈弃 MVC 框架,拥抱更适宜简单业务的开发框架;
  • 网上根本讲的都是 DDD 的实践很少有讲怎么落地,xtoon-boot 提供了残缺落地计划和实际;
  • 能够疾速开发,框架提供了系统管理和组织架构等外围模块;
  • 反对多租户的 SaaS 平台;

为何开源

工作中始终有个困恼:为什么身边很多我的项目前期保护时业务逻辑变的凌乱不堪,service 层代码变的宏大难以批改,保护老本也越来越高,有没有好的解决形式的?
起初接触到 Eric Evans 的 DDD(Domain-Driven Design 畛域驱动设计),发现这正是为了解决简单业务而提出的思维。但起初并没找到一套基于 DDD 利用的开源框架,因而决定本人从 0 开始投入研发。
当初 1.0 版本终于上线了,咱们把这套框架开源进去想跟大家探讨并一起保护,心愿今后有更多的我的项目和产品能应用这套框架。

技术选型

  • Springboot
  • Apache Shiro
  • Mybatis-plus
  • Alibaba Druid
  • Element-ui

次要模块

  1. 登录注册:账号、手机号验证登录,租户注册;
  2. 用户治理:用户新增,调配角色,禁用等;
  3. 角色治理:角色新增,查看,保护菜单等;
  4. 菜单治理:树形菜单治理,可配置菜单和按钮权限等;
  5. 租户治理:租户列表,禁用等;
  6. 操作日志:零碎操作日志记录和查问;

我的项目构造

​​​​​​​xtoon-boot
├─db     数据库 SQL 脚本
│ 
├─src      治理后盾
│    │ 
│    ├─java  模块
│    │    ├─application 应用层
│    │    │    └─impl      利用接口实现
│    │    ├─domain 畛域层(外围)│    │    │    ├─exception      自定义异样
│    │    │    ├─factory        工厂
│    │    │    ├─model          畛域模型
│    │    │    ├─service        畛域服务
│    │    │    ├─Repository     资源接口
│    │    │    ├─shared         共享类
│    │    │    ├─specification  规格校验
│    │    │    └─util           工具包
│    │    ├─infrastructure 基础设施层
│    │    │    ├─common         通用类
│    │    │    ├─persistence.mybatis           mybatis 长久化类(应该都相熟就不开展了)│    │    │    └─util           工具包
│    │    └─interfaces 接口层
│    │         ├─common         通用类
│    │         └─sys            系统管理
│    │             ├─facede     门面类
│    │             └─web        Controller 类
│    └─resources 
│        ├─static.swagger       swagger 文件
│        ├─application.yml      全局配置文件
│        └─logback-spring.xml   日志配置文件
│ 

核心思想

  • 六边形实践

2005 年 Alistair Cockburn 提出了六边形架构,又被称为端口和适配器架构。察看上图咱们发现,对于外围的应用程序和畛域模型来说,其余的底层依赖或实现都能够形象为输出和输入两类。组织关系变为了一个二维的内外关系,而不是高低构造。每个 io 与应用程序之前均有适配器实现隔离工作,每个最外围的边都是一个端口。基于六边形架构设计的零碎是 DDD 谋求的最终状态。

正文完
 0