开源地址: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
次要模块
- 登录注册:账号、手机号验证登录,租户注册;
- 用户治理:用户新增,调配角色,禁用等;
- 角色治理:角色新增,查看,保护菜单等;
- 菜单治理:树形菜单治理,可配置菜单和按钮权限等;
- 租户治理:租户列表,禁用等;
- 操作日志:零碎操作日志记录和查问;
我的项目构造
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谋求的最终状态。