Solon v3.5.2

dami - 配置路由风格(一般用不到)

</> markdown

1、内置的路由器

目前事件路由器,分为:默认路由器(基于 hash 实现,速度快);模式匹配路由器。

路由器主题示例描述
EventRouterDefaultdemo.hello,基于 hash 的路由器(性能好)
EventRouterPatterneddemo.hello.a, demo.hello.*基于模式匹配的路由器(可支持不同模式)

2、关于默认路由器(EventRouterDefault)

  • Hash (监听是什么,收的就是什么)
发送主题监听主题备注
event.user.createdevent.user.created支持 ApiBean 的模式调用

3、关于模式匹配路由器(EventRouterPatterned)

支持路由定制,已实现的有:RoutingPath,路径风格的路由;RoutingTag,标签风格的路由。还可以自己定制

  • RoutingPath(* 代表一段,** 代表不限断)
发送主题监听主题备注
event/user/createdevent/*/created
event/order/createdevent/*/created
  • RoutingTag(: 为主题与标签的间隔符,, 为主题的间隔符)
发送主题监听主题监听Tag是否监听到
event.user.updateevent.user.update不限
event.user.update:idevent.user.update不限
event.user.updateevent.user.update:id不限
event.user.update:idevent.user.update:idid
event.user.update:id,nameevent.user.update:namename
event.user.update:idevent.user.update:namename

4、配置应用示例

  • 全局范围的配置
//对全局的 `Dami.bus()` 起效
DamiConfig.configure(new EventRouterPatterned(RoutingTag::new));

//监听事件
Dami.bus().listen("demo.hello:a,b", (event) -> {
    System.err.println(event.getPayload());
});

//发送事件
Dami.bus().send("demo.hello", "world");
  • 局部配置
//对当前实例有效
DamiBus bus = new DamiBusImpl(new EventRouterPatterned(RoutingTag::new));

//监听事件
bus.listen("demo.hello:a,b", (event) -> {
    System.err.println(event.getPayload());
});

//发送事件
bus.send("demo.hello", "world");