引入依赖:
org.springframework.boot spring-boot-starter-data-redis
消息提供者:
@Override
public void produce(GiveVouchersParamDTO giveVouchersParamDTO) {
// TODO:转成JSON格式
String msg = JsonUtil.encode(giveVouchersParamDTO);
// TODO: 左放入消息队列
stringRedisTemplate.opsForList().leftPush(MESSAGE_KEY, msg);
}
消息消费者:
@Override
public void blockingConsume() {
//管道返回对应值
List
启动线程去监听消息消费:
@PostConstruct:被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器调用一次,类似于Serclet的init()方法。被 @PostConstruct修饰的方法会在构造函数之后,init()方法之前运行
如果想在生成对象时完成某些初始化操作,而偏偏这些初始化操作又依赖于依赖注入,那么久无法在构造函数中实现。为此,可以使用@PostConstruct注解一个方法来完成初始化,@PostConstruct注解的方法将会在依赖注入完成后被自动调用。
@Component
public class RedisMqJob {
@Autowired
RedisMQService redisMQService;
@PostConstruct
public void consume() {
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
while (true) {
try {
redisMQService.blockingConsume();
} catch (Exception e) {
e.printStackTrace();
}
}
}
});
thread.start();
}
}



