Dewdrop:開源事件源框架
Dewdrop 是一個自以為是的、簡單而強大的框架,用於在 Java 中實現事件溯源。Dewdrop 的想法是透過將所有複雜的事件讀取、寫入和編組深入到框架中,使您的團隊能夠專注於根據 AggregateRoot 構建業務邏輯,從而輕鬆快速地構建事件驅動系統行為、查詢邏輯和 ReadModel 組合。
目前,Dewdrop 僅支援使用EventStore作為其後備儲存。
Dewdrop 嚴格遵循一些架構原則,以便輕鬆構建事件驅動的系統。以下是 Dewdrop 的核心概念:
- DDD - 領域驅動設計
- CQRS - 命令查詢職責分離
- 事件溯源——事件驅動架構
使用方式
首先,您需要確保在本地執行 EventStore。為此,您可以下載EventStore客戶端並執行它。或者,您可以執行儲存庫中包含的 docker 例項。要啟動 docker 例項,請在 dewdrop 目錄中執行以下命令:
docker-compose up -d
我們還假設大多數參與該專案的人都在像 Spring Boot 這樣的依賴注入框架中執行它。如果是這種情況,您需要建立一個包裝您的 DI 應用程式上下文的類。對於 Spring Boot,您將建立一個實現DependencyInjectionAdapter並將其公開為 bean 的類。
public class DewdropDependencyInjection implements DependencyInjectionAdapter { private ApplicationContext applicationContext; public DewdropDependencyInjection(ApplicationContext applicationContext) { this.applicationContext = applicationContext; } @Override public <T> T getBean(Class<?> clazz) { return (T) applicationContext.getBean(clazz); } } |
這讓 Dewdrop 知道它應該使用應用程式上下文來獲取它需要的 Spring 託管 bean。
下一步是建立一個DewdropConfiguration用於配置 Dewdrop 框架的類。
import java.beans.BeanProperty; public class DewdropConfiguration { @Autowired ApplicationContext applicationContext; @Bean public DewdropDependencyInjection dependencyInjection() { return new DewdropDependencyInjection(applicationContext); } @Bean public DewdropProperties dewdropProperties() { return DewdropProperties.builder() .packageToScan("events.dewdrop") .packageToExclude("events.dewdrop.fixture.customized") .connectionString("esdb://localhost:2113?tls=false") .create(); } @Bean public Dewdrop dewdrop() { return DewdropSettings.builder() .properties(dewdropProperties()) .dependencyInjectionAdapter(dependencyInjection()) .create() .start(); } } |
就是這樣!您現在可以執行該應用程式,它將啟動 Dewdrop 框架。
相關文章
- 開源框架(整理)框架
- phpGrace開源PHP框架PHP框架
- Californium 開源框架分析框架
- PHP開源AJAX框架PHP框架
- Swift開發開源框架KatanaSwift框架
- Workerman開源框架的作者框架
- 開源RAG框架彙總框架
- 從Facebook的React框架事件學習一下開源協議React框架事件協議
- 【Android】開源專案UniversalImageLoader及開源框架ImageLoaderAndroid框架
- 開源 POC 框架學習 (kunpeng)框架
- 分享個人開源爬蟲框架爬蟲框架
- EacooPHP框架【開源、免費、好用】OOPPHP框架
- 滴滴開源小程式框架Mpx框架
- IDEA升級開源框架Idea框架
- 開源漏洞檢測框架收集框架
- Android常用的開源框架Android框架
- Android 面試開源框架篇Android面試框架
- KIXEYE Chassis開源微服務框架微服務框架
- .NET平臺下開源框架框架
- Android的MVC開源框架AndroidMVC框架
- Jease 開源內容管理框架框架
- Python的事件溯源開源庫Python事件
- PhalApi(π框架) - PHP輕量級開源介面框架API框架PHP
- Swift 和 .Net 開源,回顧 2015 年 9 大開源事件Swift事件
- 微前端框架chunchao(春潮)開源啦前端框架
- 國內優秀MES開源框架框架
- novaframework/nova:Erlang的開源Web框架。FrameworkWeb框架
- Java面試寶典之開源框架!Java面試框架
- 5款Java微服務開源框架Java微服務框架
- 微軟開源機器學習框架——infer.NET微軟機器學習框架
- 微軟開源機器學習框架——infer.NET微軟機器學習框架
- 手寫開源ORM框架介紹ORM框架
- 10款免費開源PHP框架PHP框架
- android開源專案和框架Android框架
- cqrsnode開源CQRS框架中文教程框架
- laravel框架開源的cms推薦Laravel框架
- 讀autolayout開源框架masonry想MVC框架MVC
- Java開源框架發展的遐想Java框架