微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

pubsub

如何解决pubsub

我有第3方库,该库使用kafka来抽象pub子机制。我有类似以下内容订阅主题

DDS.createListener((topic) -> "do sth with this topic");

我想进一步介绍一下,并想创建一个注释,如下所示

@Subscribe("topicName")
public void listen(Topic topic) {
    // do sth with this topic
}

处理注释时遇到问题。

首先,我需要找到带有“订阅”注释的方法,然后需要侦听幕后的主题,然后在收到主题后,将其定向到带注释的方法,在示例情况下为“侦听”。 我应该在哪里听呢?

DDS.createListener((topic) -> listen() /* dunno how to access listen */)

另外,为了调用listen方法,我需要一个类实例,但是我不确定该如何处理。做Class.newInstance()没有任何意义。我需要其他类型的配置吗?

解决方法

您需要在用于处理主题注册的包装器类中创建register(Object obj)方法。需要在具有订阅方法的类的构造函数中调用此方法。

因此,每当有人调用 register(this)方法时,您将获得对象引用,并且需要找到@Subscribe带注释的方法并创建侦听器,该侦听器将使用反射来调用给定的方法。

还有其他方法,但这似乎最简单

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。