# Event事件使用

事件发布提供两种方式 事件监听提供一种方式

# 一. 注解式

  • 事件发布
    @Send("command-1") 表示发布了一条ID为 command-1 的事件 事件内容为 return内容 可接收事件内容为Object类型,即任何类型
    @Send("command-1")
    @RequestMapping("/event")
    public String test() {
        return "发布了一个事件"; //比如这个地方可以返回一个user对象
    }
  • 事件监听
  1. 事件监听需要实现AbstractEventHandler接口
  2. @Consumer("command-1") 监听Id为command-1 的事件 此时是一个同步监听
  3. 若注解 @Consumer(value = "command-1", async = true) 表示异步监听
@Consumer("command-1")
@Component
public class ConsumerHandler1 implements AbstractEventHandler {
    @Override
    public void onEvent(IEventDisruptor eventDisruptor, long l, boolean b) {
        IEventMessage eventMessage = eventDisruptor.getEventMessage();
        Object eventSource = eventMessage.getEventSource(); // 此处为事件发布时return的值
        Assert.assertEquals("发布了一条命令",eventSource); //测试代码忽略

    }
}

# 二.代码式

  • 事件发布
 @Resource
 private EventPublish eventPublish; //装配事件发布类

 public void saveUser() {
        User user = new User();
        user.setId("1111");
        eventPublish.publish(user, "command-1");//user 为事件内容,command-1为事件Id
 }
  • 事件监听
    只有注解式,同上

# TS框架中使用到的事件

# 缓存发布事件

使用IConstants中的常量

  // ehcache发布集群同步事件
  String CACHEEVENT_CLUSTER = "cache_event_cluster_lister"
  // 发布注册中心事件(更新缓存版本号和更新时间)
  String CACHEEVENT_REGISTER = "cache_event_register_lister";

# 登录发布事件

使用IConstants中的常量

// 登录成功事件
String LOGIN_EVENT_ID = "login_success";
// 退出成功事件
String LOGOUT_EVENT_ID = "logout_success";
// 登录失败事件
String LOGIN_FAIL_EVENT_ID = "login_fail";
// 访问受限事件(未登录)
String ACCESS_FAIL_EVENT_ID = "event_access_fail";

# 组织相关事件

使用OrgEventConstant中的常量

    /**
     * 事件:新增组织
     */
    String ORG_ADD = "ORG_ADD";
    /**
     * 事件:更新组织
     */
    String ORG_UPDATE = "ORG_UPDATE";
    /**
     * 事件:批量删除组织
     */
    String ORG_BATCH_DELETE = "ORG_BATCH_DELETE";
    /**
     * 事件:删除组织
     */
    String ORG_DELETE = "ORG_DELETE";
    /**
     * 事件:批量禁用组织
     */
    String ORG_BATCH_DISABLED = "ORG_BATCH_DISABLED";
    /**
     * 事件:批量启用组织
     */
    String ORG_BATCH_ENABLE = "ORG_BATCH_ENABLE";

# 人员相关事件

使用UserEventConstant中的常量

// 新增人员
String USER_ADD = "USER_ADD";
// 修改人员
String USER_UPDATE = "USER_UPDATE";
// 批量删除人员
String USER_DELETE_BATCH = "USER_DELETE_BATCH";
// 批量启用人员
String USER_ENABLE_BATCH = "USER_ENABLE_BATCH";
// 批量禁用人员
String USER_DISABLE_BATCH = "USER_DISABLE_BATCH";
// 批量解锁人员
String USER_UNLOCK_BATCH = "USER_UNLOCK_BATCH";
// 管理员重置人员密码
String USER_PW_UPDATE_ADMIN = "USER_PW_UPDATE_ADMIN";
// 修改人员密码
String USER_PW_UPDATE = "USER_PW_UPDATE";
// 修改人员所属组织
String USER_ORG_UPDATE = "USER_ORG_UPDATE";

使用IConstant中的常量

// 密码修改成功
String MODIFY_PWD_EVENT_ID = "modify_pwd_success";
// 密码修改失败
String MODIFY_PWD_FAIL_EVENT_ID = "modify_pwd_fail";

# 角色事件

使用RoleAuthorityConstant中的常量

    /**
	 * 事件:添加角色
	 */
    String ROLE_ADD = "ROLE_ADD";
	/**
	 * 事件:修改角色
	 */
    String ROLE_UPDATE = "ROLE_UPDATE";
	/**
	 * 事件:删除角色
	 */
    String ROLE_DELETE = "ROLE_DELETE";
	/**
	 * 事件:批量删除角色
	 */
	String ROLE_BATCH_DELETE = "ROLE_BATCH_DELETE";
	/**
	 * 事件:批量禁用角色
	 */
	String ROLE_BATCH_DISABLED = "ROLE_BATCH_DISABLED";
	/**
	 * 事件:批量启用角色
	 */
	String ROLE_BATCH_ENABLE = "ROLE_BATCH_ENABLE";
   // ************************************代理角色******************************************
	/**
	 * 事件:添加代理角色
	 */
	String AGENT_ROLE_ADD = "AGENT_ROLE_ADD";
	/**
	 * 事件:修改代理角色
	 */
	String AGENT_ROLE_UPDATE = "AGENT_ROLE_UPDATE";
	/**
	 * 事件:批量删除代理角色
	 */
	String AGENT_ROLE_BATCH_DELETE = "AGENT_ROLE_BATCH_DELETE";
	// ************************************角色人员******************************************
	/**
	 * 事件:添加角色人员
	 */
	String ROLE_USER_ADD = "ROLE_USER_ADD";
	/**
	 * 事件:删除角色人员
	 */
	String ROLE_USER_DELETE = "ROLE_USER_ADD";
	/**
	 * 事件:添加人员角色
	 */
	String USER_ROLE_ADD = "USER_ROLE_ADD";
	/**
	 * 事件:删除人员角色
	 */
	String USER_ROLE_DELETE = "USER_ROLE_DELETE";
	// ************************************角色权限******************************************
	/**
	 * 事件:添加角色权限
	 */
	String ROLE_AUTHORITY_ADD = "ROLE_AUTHORITY_ADD";
	/**
	 * 事件:更新角色权限
	 */
	String ROLE_AUTHORITY_UPDATE = "ROLE_AUTHORITY_UPDATE";
	/**
	 * 事件:批量授权角色权限
	 */
	String ROLE_AUTHORITY_BATCH_USE_PERMISSION = "ROLE_AUTHORITY_BATCH_USE_PERMISSION";
	/**
	 * 事件:批量收回授权角色权限
	 */
	String ROLE_AUTHORITY_BATCH_DELETE_USE_PERMISSION = "ROLE_AUTHORITY_BATCH_DELETE_USE_PERMISSION";

	/**
	 * 事件:角色复制角色权限
	 */
	String ROLE_AUTHORITY_COPY_ROLE = "ROLE_AUTHORITY_COPY_ROLE";
	/**
	 * 事件:角色权限复制角色权限
	 */
	String ROLE_AUTHORITY_COPY_RESOURCE = "ROLE_AUTHORITY_COPY_RESOURCE";
	/**
	 * 事件:批量更新角色权限
	 */
	String ROLE_AUTHORITY_BATCH_UPDATE = "ROLE_AUTHORITY_BATCH_UPDATE";
	// ************************************管理员权限******************************************
	/**
	 * 事件:管理员组织范围权限新增
	 */
	String AUTHORITY_ADD_ORG_SCOPE = "AUTHORITY_ADD_ORG_SCOPE";
	/**
	 * 事件:管理员组织范围权限删除
	 */
	String AUTHORITY_DELETE_ORG_SCOPE = "AUTHORITY_DELETE_ORG_SCOPE";
	/**
	 * 事件:管理员角色新增
	 */
	String ADMIN_ROLE_ADD = "ADMIN_ROLE_ADD";
	/**
	 * 事件:管理员角色修改
	 */
	String ADMIN_ROLE_UPDATE = "ADMIN_ROLE_UPDATE";
	/**
	 * 事件:管理员角色批量删除
	 */
	String ADMIN_ROLE_BATCH_DELETE = "ADMIN_ROLE_BATCH_DELETE";
	/**
	 * 事件:批量启用管理员角色
	 */
	String ADMIN_ROLE_BATCH_ENABLE = "ADMIN_ROLE_BATCH_ENABLE";
	/**
	 * 事件:批量禁用管理员角色
	 */
	String ADMIN_ROLE_BATCH_DISABLED = "ADMIN_ROLE_BATCH_DISABLED";
	/**
	 * 事件:管理员权限新增功能菜单权限
	 */
	String ADMIN_ROLE_CHANGE_RESOURCE_USE_PERMISSION = "ADMIN_ROLE_CHANGE_RESOURCE_USE_PERMISSION";
	/**
	 * 事件:管理员权限授权&再授权
	 */
	String ADMIN_ROLE_CHANGE_RESOURCE_AUTHORITY = "ADMIN_ROLE_CHANGE_RESOURCE_AUTHORITY";
	// ************************************相似权限******************************************
	/**
	 * 事件:相似权限添加
	 */
	String SIMILAR_AUTHORITY_BATCH_ADD = "SIMILAR_AUTHORITY_BATCH_ADD";
最后更新日期: 3/11/2021, 2:46:19 AM