v10.0 · 双语言 · 生产就绪

εὔνοια Euonia

美好的思维 · 善意的架构

面向企业级分布式应用的全栈开发框架,同时提供 .NETJava 双语言实现。
将 OSBA、DDD、消息总线、管道中间件、工作单元等企业级架构模式集于一体。

.NET 8+
Java 17+
0 核心模块
0 语言实现
0 核心类
0 设计模式
0 消息传输

一套架构 · 两种语言 · 无限可能

Euonia 在 .NET 和 Java 两个技术栈上追求架构一致性语言惯用性的完美平衡。

.NET 版本
Java 版本
目标平台
.NET 8+ / .NET Standard 2.1+
Java 17+(Sample 支持 Java 25 + Spring Boot 4.x)
依赖注入
标记接口自动注册(ITransientDependency / IScopedDependency / ISingletonDependency)
Spring ApplicationContext 集成 + 自定义 ServiceProvider 桥接
模块化
Euonia.Modularity 插件式模块生命周期管理
Maven 多模块 + Spring @Configuration 自动装配
异步模型
Task / async-await
CompletionStage<T> / CompletableFuture<T>
消息传递
Pipeline + IBus(Publish / Send / Call)
Pipeline + Bus(publishAsync / sendAsync / callAsync)

丰富的模块生态系统

每个模块解决特定的横切关注点,可独立使用或组合构建复杂系统。

Core

基础核心库:ID 生成(Snowflake / ULID / UUID)、反射工具、不可变元组、HTTP 异常体系、安全认证。

SnowflakeULID元组反射

Domain / DDD

领域驱动设计抽象:Entity、Aggregate、ValueObject、DomainEvent、事件溯源、审计支持。

聚合根值对象领域事件审计

OSBA

面向对象可扩展业务架构:BusinessObject 层次体系、规则引擎、属性跟踪、工厂模式。

规则引擎属性跟踪工厂模式状态机

Message Bus

消息总线抽象:Publish / Send / Call 三种模式,支持 InMemory、RabbitMQ、Kafka、ActiveMQ。

RabbitMQKafkaInMemoryActiveMQ

Pipeline

请求/响应管道模式:可链式组合的中间件行为,类型化路由,灵活的处理流程。

中间件行为链类型路由

Unit of Work

工作单元模式:事务管理、嵌套 UoW、拦截器 AOP、事件通知、预留支持。

事务管理AOP嵌套事件

Caching

缓存抽象层:Memory、Redis、Runtime 多种实现,支持相对/绝对过期策略。

MemoryRedis过期策略

Threading / Lock

分布式同步原语:互斥锁、信号量,支持 ZooKeeper、Redis、FileSystem、Azure。

ZooKeeperRedis信号量互斥锁

为什么选择 Euonia?

从设计之初就为构建企业级分布式系统而生。

🏗️

双语言一致架构

.NET 和 Java 共享相同的架构理念与设计模式,降低跨平台学习成本,团队可无缝切换技术栈。

🧩

插件式模块化

每个模块独立可插拔。按需引入依赖,轻量化部署,避免不必要的耦合。

📨

消息驱动架构

内置 Publish / Send / Call 三种消息模式,支持多种传输层,轻松构建事件驱动系统。

🔒

分布式协调

分布式锁、信号量、工作单元,为微服务场景提供可靠的事务与并发保障。

📐

领域驱动设计

Entity、Aggregate、ValueObject、DomainEvent 开箱即用,实践 DDD 的最佳起点。

规则引擎

业务规则声明式定义,支持注解驱动、Lambda 规则、优先级排序,内置校验异常体系。

🔄

管道中间件

请求/响应管道模式,类似 ASP.NET 中间件的链式处理,支持类型化路由和行为组合。

🎯

标记接口 DI

.NET 版本通过 ITransientDependency / IScopedDependency / ISingletonDependency 实现依赖自动注册。

🗄️

仓储抽象

通用仓储接口,支持 EF Core 和 MongoDB 实现,链式查询构建,表达式驱动。

内置经典设计模式

Euonia 深度融合了 GoF 及企业级架构模式,让最佳实践成为默认选择。

01

工厂模式

BusinessObjectFactory 基于反射的方法查找,支持 @FactoryCreate / @FactoryFetch / @FactoryInsert 等注解驱动的 CRUD 工厂操作。

02

观察者模式

PropertyChangeSupport 属性变更通知,Flow.Publisher 响应式事件流,实现业务对象状态变化的实时响应。

03

模板方法

addRules()、initialize()、onBusinessContextSet() 等抽象钩子方法,子类通过覆写实现定制化行为。

04

策略模式

多种 ID 生成策略(Snowflake / ULID / UUID / Random)可插拔切换;多传输层的消息总线实现。

05

聚合模式

AggregateBase 管理领域事件(raiseEvent / clearEvents / attachEvents),维护聚合一致性边界。

06

仓储模式

IRepository<TEntity> 提供通用数据访问抽象,支持表达式查询、分页、链式 Queryable 构建。

07

工作单元

IUnitOfWork 管理事务边界,支持嵌套、拦截器 AOP、上下文传递、完成/失败事件通知。

08

管道 / 责任链

IPipeline<TRequest, TResponse> 串联多个 IPipelineBehavior,实现请求的链式处理。

09

适配器模式

ITypeAdapter 对象映射抽象,统一 AutoMapper 和 Mapster 的调用接口。

10

用例模式

IUseCase<TInput, TOutput> 将业务用例封装为独立可测试单元,实践 Clean Architecture。

几分钟即可上手

选择你喜欢的语言,开始构建企业级应用。

pom.xml
<dependency>
  <groupId>com.euonia</groupId>
  <artifactId>euonia-osba</artifactId>
  <version>10.0.0</version>
</dependency>

需要 Java 17+ 和 Maven 3.8+。查看 GitHub 仓库 获取完整模块列表。

Terminal
# 安装核心模块
dotnet add package Euonia.Core
dotnet add package Euonia.Bus
dotnet add package Euonia.Domain

需要 .NET 8+ SDK。查看 .NET 仓库 获取更多信息。

User.java
@Getter
@Setter
public class User extends EditableObject<User> {

    @Required
    private String name;

    private Integer age;

    @Override
    protected void addRules() {
        addRule(UserNameRule.new("name"));
        addRule(LambdaRule
            .new("age")
            .check(ctx -> (int) ctx.getValue() >= 18)
            .message("Age must be at least 18"));
    }

    @FactoryCreate
    public static User create(String name) { ... }
}

以上展示了 EditableObject + 规则引擎 + 工厂模式的组合使用。

准备好开始了吗?

Euonia 让企业级开发变得简单而优雅。加入我们,构建更好的软件。