<dependency>
<groupId>com.euonia</groupId>
<artifactId>euonia-osba</artifactId>
<version>10.0.0</version>
</dependency>
需要 Java 17+ 和 Maven 3.8+。查看 GitHub 仓库 获取完整模块列表。
美好的思维 · 善意的架构
面向企业级分布式应用的全栈开发框架,同时提供 .NET 与 Java 双语言实现。
将 OSBA、DDD、消息总线、管道中间件、工作单元等企业级架构模式集于一体。
Euonia 在 .NET 和 Java 两个技术栈上追求架构一致性与语言惯用性的完美平衡。
每个模块解决特定的横切关注点,可独立使用或组合构建复杂系统。
基础核心库:ID 生成(Snowflake / ULID / UUID)、反射工具、不可变元组、HTTP 异常体系、安全认证。
领域驱动设计抽象:Entity、Aggregate、ValueObject、DomainEvent、事件溯源、审计支持。
面向对象可扩展业务架构:BusinessObject 层次体系、规则引擎、属性跟踪、工厂模式。
消息总线抽象:Publish / Send / Call 三种模式,支持 InMemory、RabbitMQ、Kafka、ActiveMQ。
请求/响应管道模式:可链式组合的中间件行为,类型化路由,灵活的处理流程。
工作单元模式:事务管理、嵌套 UoW、拦截器 AOP、事件通知、预留支持。
缓存抽象层:Memory、Redis、Runtime 多种实现,支持相对/绝对过期策略。
分布式同步原语:互斥锁、信号量,支持 ZooKeeper、Redis、FileSystem、Azure。
从设计之初就为构建企业级分布式系统而生。
.NET 和 Java 共享相同的架构理念与设计模式,降低跨平台学习成本,团队可无缝切换技术栈。
每个模块独立可插拔。按需引入依赖,轻量化部署,避免不必要的耦合。
内置 Publish / Send / Call 三种消息模式,支持多种传输层,轻松构建事件驱动系统。
分布式锁、信号量、工作单元,为微服务场景提供可靠的事务与并发保障。
Entity、Aggregate、ValueObject、DomainEvent 开箱即用,实践 DDD 的最佳起点。
业务规则声明式定义,支持注解驱动、Lambda 规则、优先级排序,内置校验异常体系。
请求/响应管道模式,类似 ASP.NET 中间件的链式处理,支持类型化路由和行为组合。
.NET 版本通过 ITransientDependency / IScopedDependency / ISingletonDependency 实现依赖自动注册。
通用仓储接口,支持 EF Core 和 MongoDB 实现,链式查询构建,表达式驱动。
Euonia 深度融合了 GoF 及企业级架构模式,让最佳实践成为默认选择。
BusinessObjectFactory 基于反射的方法查找,支持 @FactoryCreate / @FactoryFetch / @FactoryInsert 等注解驱动的 CRUD 工厂操作。
PropertyChangeSupport 属性变更通知,Flow.Publisher 响应式事件流,实现业务对象状态变化的实时响应。
addRules()、initialize()、onBusinessContextSet() 等抽象钩子方法,子类通过覆写实现定制化行为。
多种 ID 生成策略(Snowflake / ULID / UUID / Random)可插拔切换;多传输层的消息总线实现。
AggregateBase 管理领域事件(raiseEvent / clearEvents / attachEvents),维护聚合一致性边界。
IRepository<TEntity> 提供通用数据访问抽象,支持表达式查询、分页、链式 Queryable 构建。
IUnitOfWork 管理事务边界,支持嵌套、拦截器 AOP、上下文传递、完成/失败事件通知。
IPipeline<TRequest, TResponse> 串联多个 IPipelineBehavior,实现请求的链式处理。
ITypeAdapter 对象映射抽象,统一 AutoMapper 和 Mapster 的调用接口。
IUseCase<TInput, TOutput> 将业务用例封装为独立可测试单元,实践 Clean Architecture。
选择你喜欢的语言,开始构建企业级应用。
<dependency>
<groupId>com.euonia</groupId>
<artifactId>euonia-osba</artifactId>
<version>10.0.0</version>
</dependency>
需要 Java 17+ 和 Maven 3.8+。查看 GitHub 仓库 获取完整模块列表。
# 安装核心模块
dotnet add package Euonia.Core
dotnet add package Euonia.Bus
dotnet add package Euonia.Domain
需要 .NET 8+ SDK。查看 .NET 仓库 获取更多信息。
@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 + 规则引擎 + 工厂模式的组合使用。