配置API

Axon在业务逻辑和基础架构配置方面保持严格的分离。为了做到这一点,Axon将提供一些构建模块来处理基础设施问题,例如消息处理器周围的事务管理。消息的实际payload和handler的内容(尽可能的)都是在Axon-independent Java类中实现的。

为了使这些基础架构组件的配置更容易,并定义与每个功能组件的关系,Axon提供了一个配置API。

Setting up a configuration
获取默认配置非常简单:
Configuration config = DefaultConfigurer.defaultConfiguration()
.buildConfiguration();

这个配置通过在线程上的处理消息为分发消息提供了构建块。

显然,这种配置不会很有用。你必须将你的命令模型(Command Model)对象和事件处理器(Event Handlers)注册到该配置中。

为此,请使用.defaultConfiguration()方法来返回Configurer(配置)实例。

Configurer configurer = DefaultConfigurer.defaultConfiguration();
配置器提供了许多方法供您注册这些组件。如何配置这些内容将在每个组件的各个章节中详细介绍。
组件注册的一般形式如下:
Configurer configurer = DefaultConfigurer.defaultConfiguration();
configurer.registerCommandHandler(c -> doCreateComponent());

请注意registerCommandBus调用的是lambda表达式。此表达式的c参数是描述完整配置的配置对象。如果您的组件需要其他组件才能正常运行,则可以使用此配置来获取它们。
例如,当我们注册一个Command Handler时须要添加一个依赖的序列化组件:
configurer.registerCommandHandler(c -> new MyCommandHandler(c.serializer());

并不是所有的组件都有其明确的访问方法。要从配置中获取组件,请使用:
configurer.registerCommandHandler(c -> new MyCommandHandler(c.getComponent(MyOtherComponent.class));

该组件必须使用configurer.registerComponent(componentType,builderFunction)方法向Configurer注册。构造函数将接收Configuration对象作为输入参数。
使用Spring来配置
如果你使用Spring,你不须要显示的使用Configurer。相反,你只须简单地将@EnableAxon放在Spring 一个带有@Configuration的类上。
Axon将使用Spring应用程序上下文来定位构建块的特定实现,并为那些不存在的提供默认值。因此,取代在配置中注册构件,你只需要在Spring应用程序上下文中让@Bean可用即可。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,991评论 19 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,971评论 6 342
  • http://liuxing.info/2017/06/30/Spring%20AMQP%E4%B8%AD%E6%...
    sherlock_6981阅读 16,015评论 2 11
  • 多好的夜, 冷意微凉,愁锁心头。 泪随暮色潜入梦, 情随南国故人牵。 你在远方,又咫尺方圆。 动我悲喜交猝。 而我...
    旧纸书阅读 109评论 0 0
  • 新科技逆袭,安全帽识别仪帮您准确高效快捷管理! 这款产品争对性强,协助管理者统计工人佩戴安全帽的数据,智能识别工人...
    betvsys阅读 750评论 0 1