DDD领域驱动架构设计学习网站和开源框架

在这里插入图片描述
在这里插入图片描述

文章目录

  • 介绍
    • 1、国外Axon
    • 2、阿里Cola

介绍

近年来,关于DDD的讨论越来越多,关于网上的文章很多都是理论上的介绍,由于自己最近也在学习相关知识,所以分享几个关于DDD落地的开源框架

1、国外Axon

Axon是国外一款比较系统的DDD开源框架,是基于SpringBoot开发的,Github地址是:https://github.com/AxonFramework/AxonFramework,在axon架构中,有一个axon-server用于可视化管理命令和事件消息存储,下载地址是:https://developer.axoniq.io/download,对于企业版本是收费的。
在这里插入图片描述

axon-server下载以后解压缩可以得到如下的文件:
在这里插入图片描述
命令行执行java -jar axonserver.jar,浏览器运行http://localhost:8024可以看到如下界面:
在这里插入图片描述
官方文档地址是:https://docs.axoniq.io/reference-guide/,文档中对DDD进行了比较系统的介绍,如CQRS、领域建模、事件驱动等知识,关于如何使用可查阅文档:
在这里插入图片描述
官方也提供了一个使用案例,Github地址是:https://github.com/AxonIQ/giftcard-demo。

axon已经和SpringBoot进行了很好的集成,在自己的项目中使用只需要导入如下依赖即可,然后配置axon-server服务的地址注册服务:

<dependency><groupId>org.axonframework</groupId><artifactId>axon-spring-boot-starter</artifactId>
</dependency>

2、阿里Cola

cola是阿里巴巴开源的一款DDD落地开源框架,目前最高版本是4.3.2版本,采用4层架构,Github地址是https://github.com/alibaba/COLA,摘自的架构图如下:
在这里插入图片描述
在命令行执行如下命令可以生成对应的包结构:

mvn archetype:generate \-DgroupId=cn.xilio \-DartifactId=shorturl \-Dversion=1.0.0-SNAPSHOT \-Dpackage=cn.xilio.shorturl \-DarchetypeArtifactId=cola-framework-archetype-web \-DarchetypeGroupId=com.alibaba.cola \-DarchetypeVersion=4.3.2

最终会生成如下的目录结构如下所示:
在这里插入图片描述
最后再分享几个社区:

  • Martin Fowler:国外Martin Fowler大佬的博客,只能膜拜。
  • 微软技术文档

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/218925.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

matlab信号分选系统算法-完整算法结构

matlab信号分选系统算法 针对得到的脉冲流PDW进行信号分选&#xff0c;包括重频恒定、重频抖动、重频参差和重频滑变四种脉间调制类型。   这里我们先进行数据的仿真&#xff0c;后续边仿真边分享思路&#xff1a;首先根据信号类型&#xff0c;分别产生重频恒定、重频抖动、重…

el-tree-select 如何使用不规则的数据作为数据来源

el-tree-select 如何使用不规则的数据作为数据来源 在项目中可能使用的 tree 数据并不是那么标准&#xff0c;这样不要紧&#xff0c;只要我们通过 props 指定一下数据结构即可。 比如&#xff0c;项目中的数据结构是这样的&#xff1a; 我们只需要使用 pros 字段指定 tree …

GateWay网关介绍以及整合knife4j聚合所有服务的接口文档

为什么使用网关&#xff1f; 因为多个微服务的端口不同&#xff0c;前端调用不方便&#xff0c;使用网关可以统一接收处理前端的请求&#xff0c;同时方便接口的集中处理&#xff0c;比如鉴权、聚合接口文档、限流等等.. 这里使用Knife4j文档工具来实现接口文档&#xff1a;K…

高校刮起元宇宙风!3DCAT实时云渲染助力川轻化元校园建设

元宇宙&#xff0c;是一个虚拟的网络世界&#xff0c;它与现实世界相互连接&#xff0c;为人们提供了一个身临其境的数字体验。元宇宙的概念并不新鲜&#xff0c;早在上个世纪就有科幻作家和电影导演对它进行了想象和创造。但是&#xff0c;随着科技的发展&#xff0c;特别是5G…

遇到生产环境.OutOfMemoryError: Metaspace

错误日志Aborting due to java.lang.OutOfMemoryError: Metaspace 2023-12-13 17:31:35.750 [http-nio-8080-exec-26] ERROR [DefaultReportIndustryPolicy.generateReport:2538] - 生成报告出现问题 - timeout executing POST http://srv-cer-file/sys-file/upload - {} feig…

【JMeter】使用nmon进行性能资源监控

一、前言 ​ 在工作中可能会遇到需要在压测的时候对Linux服务器进行性能资源监控的情况。这时可以用nmon来对服务器进行监控。 二、nmon的下载安装 1.查看系统信息 shell cat /etc/os-release结果为 shell PRETTY_NAME"Debian GNU/Linux 12 (bookworm)" NAME&qu…

python:五种算法(PSO、RFO、HHO、WOA、GWO)求解23个测试函数(python代码)

一、五种算法简介 1、粒子群优化算法PSO 2、红狐优化算法RFO 3、哈里斯鹰优化算法HHO 4、鲸鱼优化算法WOA 5、灰狼优化算法GWO 二、5种算法求解23个函数 &#xff08;1&#xff09;23个函数简介 参考文献&#xff1a; [1] Yao X, Liu Y, Lin G M. Evolutionary program…

【Linux】如何在Ubuntu 20.04上安装PostgreSQL

介绍 PostgreSQL或Postgres是一个关系数据库管理系统&#xff0c;提供SQL查询语言的实现。它符合标准&#xff0c;具有许多高级功能&#xff0c;如可靠的事务和无读锁的并发性。 本指南演示了如何在Ubuntu 20.04服务器上快速启动和运行Postgres&#xff0c;从安装PostgreSQL到…

Vue2脚手架搭建+项目基础依赖安装

文章目录 1. 安装 node.js2. 安装 vue-cli 脚手架3. 创建 vue2 项目4. 安装基础依赖 1. 安装 node.js 可以参考这篇文章 https://blog.csdn.net/weixin_43721000/article/details/134284418 2. 安装 vue-cli 脚手架 安装 vue-clinpm install -g vue/cli查看是否安装成功vue -…

程序员必备的十种排序算法

欢迎关注博主 Mindtechnist 或加入【智能科技社区】一起学习和分享Linux、C、C、Python、Matlab&#xff0c;机器人运动控制、多机器人协作&#xff0c;智能优化算法&#xff0c;滤波估计、多传感器信息融合&#xff0c;机器学习&#xff0c;人工智能等相关领域的知识和技术。关…

猫粮哪个牌子质量好性价比高?口碑比较好的主食冻干猫粮牌子推荐

猫咪生骨肉主食冻干猫粮喂养方式是越来越火了&#xff0c;作为一个离职的十年经验宠物护理师&#xff0c;对宠物健康营养方面的知识一直在研究&#xff0c;不光是为了我自己养的猫咪身体健康&#xff0c;也要为客户的猫咪健康负责&#xff01;现在很多养猫人士对主食冻干猫粮喂…

GIT的后悔药

版本回退 上篇咱们说过&#xff0c;GIT能够管理文件的历史版本&#xff0c;这也是版本控制器重要的能力。如果有一天你发现之前做的工作出现很大问题&#xff0c;需要在某个特定的历史版本重新开始&#xff0c;这个时候&#xff0c;就需要版本回退的功能了。执行git reset命令…

mybatis动态SQL-trim

1、建库建表 create database mybatis-example; use mybatis-example; create table emp (empNo varchar(40),empName varchar(100),sal int,deptno varchar(10) ); insert into emp values(e001,张三,8000,d001); insert into emp values(e002,李四,9000,d001); insert into…

Linux操作系统:开源的计算机革命

引言&#xff1a; 在计算机科学领域&#xff0c;Linux操作系统已经成为了一个不可或缺的存在。自1991年由林纳斯托瓦兹&#xff08;Linus Torvalds&#xff09;首次发布以来&#xff0c;Linux已经从一个个人项目发展成为全球最流行的开源操作系统之一。本文将详细介绍Linux操作…

C++STL的stack和queue(超详解)

文章目录 前言stack栈的题目最小栈JZ31 栈的压入、弹出序列 stack的模拟实现queue的模拟实现 前言 栈和队列这一块其实有数据结构的基础&#xff0c;学起来非常简单。 stack 栈的成员函数就这么写&#xff0c;除了emplace其他都已经非常熟悉了。 stack没有迭代器吗&#xff…

自控基础理论篇-品质因数与阻尼系数的关系

1.二阶低通滤波系数的标准形式 &#xff08;a&#xff09;与阻尼系数相关的标准形式 &#xff08;b&#xff09;与品质因数相关的标准形式 比较上式可以分析得到,当A0等于1的时候&#xff0c;阻尼比与品质因素有一个对应关系 2.二阶带通滤波系数的标准形式 &#xff08;a&…

Redis - 分布式锁、Redisson

分布式锁 分布式锁是控制分布式系统间同步访问共享资源的一种方式&#xff0c;其可以保证共享资源在并 发场景下的数据一致性。 当有多个线程要访问某一个共享资源&#xff08; DBMS 中的数据或 Redis 中的数据&#xff0c;或共享文件 等&#xff09;时&#xff0c;为了达…

Halcon一维码识别

文章目录 参数连接halcon 自带案例1&#xff08;设置校验位识别条码&#xff09;Halcon 自带案例2&#xff08;设置对比度识别条码&#xff09;Halcon 自带案例3&#xff08;存在曲面变形&#xff09;Halcon 自带案例4&#xff08;设置条码扫描线&#xff09;Halcon 自带案例5&…

Java 入门第三篇,程序+输出+基础类型+循环+选择+判断语法等

Java 入门第三篇&#xff0c;程序输出循环数组选择判断语法等 一&#xff0c;什么是类 在Java中&#xff0c;类&#xff08;Class&#xff09;是一种面向对象编程的基本概念。类是用于创建对象的模板&#xff0c;它定义了对象的属性&#xff08;成员变量&#xff09;和行为&a…

数字孪生 5G时代的重要应用场景 - 读书笔记

作者&#xff1a;陈根 第1章&#xff1a;数字孪生概述 数字孪生&#xff1a;对物理世界&#xff0c;构建数字化实体&#xff0c;实现了解、分析和优化集成技术&#xff1a;AI、机器学习、大数据分析构成&#xff1a;传感器、数据、集成、分析、促动器&#xff08;可以人工干预…