由于lettuce没办法实现stream的消费者实时监听,要在tomcat启动后,执行一个while(true)作为消费者的监听。
1、自定义监听,实现ServletContextListener接口,重写contextInitialized方法
public class ZtsRedisStreamListener implements ServletContextListener , ApplicationContextAware {
private ApplicationContext applicationContext;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
// 保存Spring容器的上下文
this.applicationContext = applicationContext;
}
@Override
public void contextInitialized(ServletContextEvent servletContextEvent) {
// 获取Spring容器的上下文
applicationContext = WebApplicationContextUtils.getRequiredWebApplicationContext(servletContextEvent.getServletContext());
// 通过上下文获取Bean对象
MessageSubscriber messageSubscriber = applicationContext.getBean(MessageSubscriber.class);
}
@Override
public void conte