Skip to main content

安装

warning

由于当前版本试用阶段,未注册到中央仓库,所以目前只等通过源码maven 打包本地使用。

普通项目

通过此方式安装运行,您将可以将Qiqb-Framework集成到任何项目中。

依赖

<dependency>
<groupId>net.qiqbframework</groupId>
<artifactId>qiqb-core</artifactId>
<version>${lastVersion}</version>
</dependency>

配置并启动

Configurer 声明所有必要的材料(命令类型、聚会根类型、加载处理器、持久处理器、事件处理器),一般在项目启动后执行一次即可。

// ... existing code ...
Configurer configurer = DefaultConfigurer.defaultConfiguration();
// 注册聚合根定义
configurer.aggregateConfigurer().registerAggregateRootTypeBuilder(c -> User.class);
// 注册用户加载器
configurer.loadConfigurer().registerLoadHandlerBuilder(c -> userPersist);
// 注册用户持久处理器
configurer.persistenceConfigurer().registerPersistenceHandlerBuilder(c -> userPersist);
// 注册所有命令类型
configurer.commandConfigurer().registerAggregateCommandType(c -> UserRegisterCmd.class);
// ...
Configuration configuration = configurer.buildConfiguration();
configuration.start();
// ... existing code ...

Configurer定义好所有材料后,需创建一个 Configuration对象并启动,此时框架已完成的初始化。

接下来我们看看怎么使用吧。。。

理论上可在一个项目中存在多个Configuration,并可以做到完全隔离。

获取命令网关

命令网关是我们开发最常用的对象。可以通过CommandGateway对象来处理命令。

// ... existing code ...
CommandGateway commandGateway = configuration.commandGateway();
// ... existing code ...

执行命令

// ... existing code ...
UserRegisterCmd userRegisterCmd = new UserRegisterCmd(userName);
commandGateway.sendAndWait(userRegisterCmd);
// ... existing code ...

Spring 项目

Springboot/Spring已然是Java项目中的标配,Qiqb-Framework同样很方便的集成到spring boot 环境。

<dependency>
<groupId>net.qiqbframework</groupId>
<artifactId>qiqb-spring-boot-starter</artifactId>
<version>${lastVersion}</version>
</dependency>

spring boot 环境中,Qiqb-Framework提供了默认配置,启动时将自动扫描收集感兴趣的类或者对象(方法),您将无需手动注册。

命令网关直接通过spring容器依赖。 如:

// ... existing code ...
@Autowired
CommandGateway commandGateway;
// ... existing code ...

Quarkus 项目

Qiqb-Framework提供 Quarkus 环境支持。

<dependency>
<groupId>net.qiqbframework</groupId>
<artifactId>qiqb-quarkus</artifactId>
<version>${lastVersion}</version>
</dependency>

Quarkus 环境中,Qiqb-Framework提供了默认配置,编译的时候自动扫描收集感兴趣的类或者对象(方法),您将无需手动注册。

命令网关直接通过 Quarkus 容器依赖。 如:

// ... existing code ...
@Inject
CommandGateway commandGateway;
// ... existing code ...