# savior-event

# 官网

事件总线EventBus技术解决方案 - Savior (opens new window)

# 背景

事件总线常用来解耦复杂的业务,常见的Axon、Spring内都有事件总线的身影,一个组件往往需要具备良好的可用性和扩展性,savior-event应运而生。

# 特性

savior-event总线具备同步和异步事件,同时提供多种实现策略。

# 依赖

<dependency>
    <groupId>cn.sunjinxin.savior</groupId>
    <artifactId>savior-event</artifactId>
    <version>1.0.4</version>
</dependency>

# 启动

在启动类上标注 @Savior 注解,即可启动Savior框架事件总线组件的功能。

import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.SpringApplication;
import cn.sunjinxin.savior.core.anno.Savior;

/**
 * @author issavior
 * @date 1314/05/20 00:00:00
 */
@Savior
@SpringBootApplication
public class AppRun {
    public static void main(String[] args) {
        SpringApplication.run(AppRun.class, args);
    }
}

# 策略

在application.yml配置文件中,可对savior-event事件总线组件进行定制化: 组件提供了default和spring两种实现策略

savior:
  event:
    strategy: default 
    async-thread-pool:
      corePoolSize: 20
      maxPoolSize: 50
      queueCapacity: 1000
      threadNamePrefix: savior-example-event

# 事件监听

组件提供了同步事件监听和异步事件监听,两个接口,实现即可:

1. cn.sunjinxin.savior.event.listener.sub.SyncListener
2. cn.sunjinxin.savior.event.listener.sub.AsyncListener

# 事件发布

1. Eventer.SYNC.publish(EventContext.builder().build());
2. Eventer.ASYNC.publish(EventContext.builder().build());