事件管理服务:基础、高级特性与不足
1. 事件管理服务基础
1.1 事件处理器接口实现
要使用事件管理服务进行事件处理,需要实现 EventHandler 接口,该接口提供了 handleEvent(Event) 回调方法。所有发送到指定主题的登录事件都会通过此回调以 org.osgi.service.event.Event 对象的形式到达,这些对象充当事件属性的容器。
1.2 事件对象
事件对象包含与之关联的主题名称和一组事件属性。事件属性的格式与服务属性相同。不能直接通过事件管理服务发送任意 Java 对象,而必须使用事件管理服务的 Event 类,这是为了强制将事件结构化为一组事件属性,从而在发布者和订阅者之间建立一个通用契约,而无需他们共享通用的 Java 接口。
以登录事件为例,可以定义登录事件包含两个重要的事件属性:
- userid :用于登录的用户标识。
- timestamp :尝试登录请求的时间。
以下是一个登录事件发布者的示例代码:
public class PublisherActivator implements BundleActivator {
public void start(BundleContext context) throws Exception {
LoginEventP
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



