您现在的位置是:首页 > 文章详情

Dami 本地过程调用框架(主打解耦),v0.24 发布

日期:2023-09-14点击:78

Dami,专为本地多模块之间通讯解耦而设计(尤其是未知模块、隔离模块、领域模块)。零依赖,特适合 DDD。

特点

结合 Bus 与 RPC 的概念,可作事件分发,可作接口调用,可作异步响应。

  • 支持事务传导(同步分发、异常透传)
  • 支持事件标识、拦截器(方便跟踪)
  • 支持监听者排序、附件传递(多监听时,可相互合作)
  • 支持 Bus 和 Api 两种体验风格

与常见的 EventBus、ApiBean 的区别

  Dami EventBus ApiBean Dami 的情况说明
广播 发送(send) + 监听(listen)
以及 Api 模式
应答 发送并等响应(sendAndResponse) + 监听(listen) + 答复(reply)
以及 Api 模式
回调 有+ 有- 发送并等回调(sendAndCallback) + 监听(listen) + 答复(reply)
耦合 弱- 弱+ 强++  

如果涉及类加载器隔离:请在主程序标为编译,在其它模块标为可选。

所谓解耦?

 @DamiTopic("event.user") public interface EventUserService { User getUser(long userId); } @DamiTopic("event.user") public class EventUserServiceImpl { //无耦合实现了 EventUserService 接口 public User getUser(long userId) { return new User(userId); } } @EnableAutoConfiguration @SpringBootTest(classes = Demo91.class) @ComponentScan("features.demo91_springboot") public class Demo91 { @Autowired EventUserService eventUserService; @Test public void main(){ User user = eventUserService.getUser(99); assert user.getUserId() == 99; } } 

本次更新了什么?

  • Payload::reply 增加返回是否成功
  • Dami.api() 的监听者参数数量可与发送者略有不同(比如增加 Payload 参数)

项目地址

原文链接:https://www.oschina.net/news/258099/dami-0-24-released
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章