美文网首页
Confluence插件开发 - 2 - 系统事件监听

Confluence插件开发 - 2 - 系统事件监听

作者: chaoyz | 来源:发表于2020-04-17 22:18 被阅读0次

注:阅读此篇时,请确保你的开发环境已经正常配置,可以正常使用命令行工具创建插件demo

简介

此篇文章介绍Confluence插件中如何使用Confluence系统事件,定制扩展功能。通过系统暴露的event事件,获取回调定制逻辑。需要注意的是通过事件订阅的方式扩展功能前提是,Confluence系统有暴露的event。

事件注意事项(重要)

  • 事件机制没有循环监测事件触发的机制,所以事件监听器内需要注意不要导致循环事件,举例:一个监听SpaceModifiedEvent事件的listener,逻辑代码中不能产生SpaceModifiedEvent事件
  • 监听器listener需要实现spring bean生命周期管理接口InitializingBean和DisposableBean,当整个插件启用或者禁用的时候会触发对应的afterPropertiesSet和destroy方法
  • 事件机制触发的操作都是同步操作,所以你需要保证你的监听器逻辑尽可能快速处理完成,不要影响整个系统的操作(十分重要)

创建一个简单的监听器

  • 类需要增加@Scanner注解
  • 使用@ComponentImport注解导入依赖的系统处理类
  • 使用@Autowried注释构造器
  • 在方法上增加@EventListener注解,并且方法接受参数为监听的event对象
    示例代码:
@Scanner
public class EventListener implements DisposableBean {

    private EventPublisher eventPublisher;

    @Autowired
    public EventListener(@ComponentImport EventPublisher eventPublisher) {
        eventPublisher.register(this);  //注册自己
    }

    // 点赞操作事件监听器
    @EventListener
    public void likeCreatedEvent(LikeCreatedEvent likeCreatedEvent) {

    }

    public void destroy() throws Exception {
        // 释放注册监听器
        eventPublisher.unregister(this);
    }
}

创建好监听器后需要在atlassian-plugin.xml中注册listener

<listener name="demo listener" class="cn.idocode.confluence.plugindemo.listener.EventListener"
              key="eventListener">
    <description>demo插件</description>
</listener>

event参考

参考链接地址

根据需求查找使用事件,也可以根据源码查询,包地址是:com.atlassian.confluence.event.events

示例代码

https://github.com/chaoyz/plugin-demo

参考

Event Listener module

Confluence Java Api 6.3.0

相关文章

  • Confluence插件开发 - 2 - 系统事件监听

    注:阅读此篇时,请确保你的开发环境已经正常配置,可以正常使用命令行工具创建插件demo 简介 此篇文章介绍Conf...

  • cordova优盘插件

    工作中开发的一个优盘监听插件功能:监听优盘拔插事件用于安卓板开发,获得优盘插入和优盘路径 参考链接:github ...

  • 微信小程序

    微信小程序 - 监听 TabBar 切换点击事件 在小程序开发的时候想要监听系统的 TabBar 切换点击事件,只...

  • 解决:confluence 5.9.4 一次性恢复30个插件

    背景 confluence A中安装了30个插件。从confluence B中需要安装这个30个插件(注:A与B的...

  • Java事件监听器的工作步骤介绍

    在程序开发中,经常需要对某些事件进行监听,如监听鼠标点击事件、监听键盘按下事件等,此时就需要使用事件监听器,事件监...

  • button点击事件

    在android开发中,监听button的点击事件有四种方法。 1:使用匿名内部类: 2:自定义单击事件监听类(继...

  • Swift--监听iPhone键盘弹出及隐藏事件

    开发需求:对键盘弹出及隐藏事件进行监听 需要通过NotificationCenter对键盘事件进行监听 如果要监听...

  • Confluence插件开发 - 1 - 开发环境准备

    写在前面 Confluence插件开发系列为我个人在实际项目中积累的开发经验,所有内容基于官方文档教程和Googl...

  • 监听事件-----菜鸟入门

    在Android 应用开发过程中,常用监听事件如下: (1) ListView事件监听setOn ItemSele...

  • 监听事件

    在Android 应用开发过程中,常用监听事件如下: (1) ListView事件监听setOn ItemSele...

网友评论

      本文标题:Confluence插件开发 - 2 - 系统事件监听

      本文链接:https://www.haomeiwen.com/subject/octpvhtx.html