Axon Framework配置

獲得一個默認的配置是非常容易的:
Configuration config = DefaultConfigurer.defaultConfiguration().buildConfiguration();

這個配置爲分發消息提供了在線程上處理消息、分發它們的實現。顯然,這種配置不會很有用。你必須將你的命令模型對象和事件處理器註冊到該配置中。

爲此,通過.defaultConfiguration()方法返回配置實例。
Configurer configurer = DefaultConfigurer.defaultConfiguration();

配置提供了多種允許你註冊這些組件的方法。在每個組件的相應章節有如何配置這些組件的詳細描述。

組件一般形式的註冊,如下:
Configurer configurer = DefaultConfigurer.defaultConfiguration();
configurer.registerCommandHandler(c -> doCreateComponent());
注意registerCommandBus中lambda表達式的調用。這個表達式的參數c是描述完整配置的配置對象。如果組件需要其他組件正常運行,則可以使用此配置來檢索它們。

例如,註冊一個需要序列化器的命令處理程序
configurer.registerCommandHandler(c -> new MyCommandHandler(c.serializer());

不是所有的組件都有其明確的accesor方法。檢索一個配置中的組件,使用:
configurer.registerCommandHandler(c -> new MyCommandHandler(c.getComponent(MyOtherComp
onent.class));

該組件必須和配置一起註冊,使用
configurer.registerComponent(componentType, builderFunction) .builder函數將接受配置對象作爲輸入參數。

使用Spring設置配置
使用Spring時,不需要顯式地使用配置。相反,你可以簡單地把@EnableAxon設置到一個Spring @configuration類上。

Axon將使用Spring應用程序上下文來定位構件的特定實現,併爲那些不存在的提供默認值。因此,取代在配置中註冊構件,你只需要在Spring應用程序上下文中讓@Bean可用即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章