首页 > 其他分享 >Dami 本地过程调用框架(主打解耦),v0.24 发布

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

时间:2023-09-14 13:22:44浏览次数:46  
标签:主打 user 监听 Dami User 模块 public v0.24

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 参数)

项目地址

标签:主打,user,监听,Dami,User,模块,public,v0.24
From: https://www.cnblogs.com/noear/p/17702263.html

相关文章

  • DOYO DAMI网站挖洞实况
    DOYODAMI网站挖洞实况DOYO先打开网站DOYO,逛一逛前端页面直接在路径后面拼接admin.php尝试登录后台,发现成功通过爆破得到的账号admin密码123456进入后台管理系统这时,我们再注册一个账号购买一件女士原创纯羊绒,尺码M,颜色蓝色,使用线下支付的方式记下它的订单号169328213......
  • DOYO DAMI网站挖洞实况
    DOYODAMI网站挖洞实况DOYO先打开网站DOYO,逛一逛前端页面直接在路径后面拼接admin.php尝试登录后台,发现成功通过爆破得到的账号admin密码123456进入后台管理系统这时,我们再注册一个账号购买一件女士原创纯羊绒,尺码M,颜色蓝色,使用线下支付的方式记下它的订单号169328213......
  • Vue3.3 + TS4 ,自主打造媲美 ElementPlus的组件库(16章)
    点击下载:Vue3.3+TS4,自主打造媲美ElementPlus的组件库(16章)提取码:n899 Vue3.3+TS4,自主打造媲美ElementPlus的组件库课程,又名:进阶必学,2023最新,打造媲美ElementPlus的组件库随着Web应用程序的复杂性不断增加,为了提高开发效率和维护性,我们往往需要构建可复用的组件库。Vue作为......
  • 《风暴英雄》阿拉纳克播报员--主打一个阴阳怪气
    BV1Xx411L7UN1.游戏开始:别打的太无聊了啊~请开始你丢人的表演 2.选择天赋:选择天赋,要我教你吗?连天赋都要我提醒你选吗?也许这次你不会再选错天赋! 3.玩家强退游戏或者掉线可怜的懦夫!你就算狗带,也比活在恐惧中强!对!快滚吧! 4.玩家重新加入游戏一朝逃跑,终生胆小!哦~刚......
  • Damiler EDI 项目 Excel 方案开源介绍
    准备下载和运行DaimlerEDI到Excel使用Excel生成一系列EDI文档与Daimler通信。下载工作流  下载示例文件  DaimlerEDI&Excel方案简介本文将继续分享Daimler示例工作流:使用Excel端口和Email端口生成一系列文件,完成与Daimler的EDI通信。DaimlerEDI到Excel示......
  • 蔚来真题和答案,主打一个简单?
    问题来源如下:问题链接:https://www.nowcoder.com/discuss/493178141461041152答案解析1.解释脏读/不可重复读/幻读脏读:指一个事务读取到了另一个事务为提交保存的数据,之后此事务进行了回滚操作,从而导致第一个事务读取了一个不存在的脏数据。不可重复读:在同一个事务中,同一......
  • 使用php easydamin
    #installcomposer[root@izbpot8zbin]#curl-sShttps://getcomposer.org/installer|phpAllsettingscorrectforusingComposerDownloading...#movefileComposer(version2.5.7)successfullyinstalledto:/usr/bin/composer.pharUseit:phpcomposer.phar[root......
  • 社交电视应用Miso融资400万美元,主打第二屏体验
    据国外媒体报道,社交电视应用Miso刚刚完成了400万美元的新一轮融资,本轮融资由风投巨头KhoslaVentures领投,由原有投资者GoogleVentures和HearstInteractiveMedia参投。加上此前获得的融资,目前Miso的融资总额为600万美元。Miso发布之初,也和GetGlue、Tunerfish等其他社交电视应......
  • 我用ChatGPT做WebRTC音视频性能优化,主打一个高效
    摘要随着GPT-4的发布,AI的风越吹越旺。GPT-4可以回答问题,可以写作,甚至可以基于一张草图生成html代码搭建一个网站。即构社区的一位开发者@倪同学就基于目前在研究的WebRTC......
  • Fireox OS 杀入移动操作系统 主打HTML5
    HTML5的前景无疑是诱人的,一句“Writeonce,runanywhere”就可以秒杀一切。最近HTML5移动Apps呼声越来越大,整体的印象就是HTML5为开发者提供了一个跨平台的移动......