我是靠谱客的博主 乐观黑夜,最近开发中收集的这篇文章主要介绍SpringBoot项目中使用Google EventBus,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

SpringBoot项目中使用Google EventBus

1、项目导入依赖

<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>20.0</version>
</dependency>

2、注册为Bean组件

package com.jidi.springbootredis.config;
import com.google.common.eventbus.AsyncEventBus;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
/**
* @Description
* @Author jidi
* @Email jidi_jidi@163.com
* @Date 2021/5/20
*/
@Configuration
public class EventBusConfig {
/**
* 定义EventBus
*/
@Bean
public AsyncEventBus asyncEventBus() {
ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(3, 10, 60,TimeUnit.SECONDS, new ArrayBlockingQueue<>(10), new ThreadPoolExecutor.DiscardPolicy());
return new AsyncEventBus(threadPoolExecutor);
}
}

3、添加事件处理监听器

package com.jidi.springbootredis.listener;
import com.google.common.eventbus.AsyncEventBus;
import com.google.common.eventbus.Subscribe;
import com.jidi.springbootredis.model.User;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
/**
* @Description
* @Author jidi
* @Email jidi_jidi@163.com
* @Date 2021/5/20
*/
@Slf4j
@Component
public class EventBusListener {
@Autowired
private AsyncEventBus eventBus;
/**
*
在事件总线中注册
*/
@PostConstruct
public void init(){
eventBus.register(this);
}
/**
*
具体要执行的业务逻辑
*/
@Subscribe
public void test(User user){
log.info("{}", user.toString());
}
}

4、业务层调用


@Autowired
private EventBus eventBus;
/**
* 使用EventBus进行异步处理,会执行EventBusListener中对应的方法,根据参数类型进行匹配
*/
public void test(){
eventBus.post(new User());
}

最后

以上就是乐观黑夜为你收集整理的SpringBoot项目中使用Google EventBus的全部内容,希望文章能够帮你解决SpringBoot项目中使用Google EventBus所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(60)

评论列表共有 0 条评论

立即
投稿
返回
顶部