pom:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency>
代码:
import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.data.redis.connection.MessageListener;import org.springframework.data.redis.connection.RedisConnectionFactory;import org.springframework.data.redis.listener.ChannelTopic;import org.springframework.data.redis.listener.RedisMessageListenerContainer;import org.springframework.data.redis.listener.adapter.MessageListenerAdapter;@Configurationpublic class RedisSubListenerConfig { @Bean MessageListenerAdapter messageListener() { //abstract methods overwrite return new MessageListenerAdapter((MessageListener) (message, pattern) -> { System.out.println("Message received: " + message.toString()); }); } @Bean RedisMessageListenerContainer redisContainer(RedisConnectionFactory connectionFactory) { RedisMessageListenerContainer container = new RedisMessageListenerContainer(); container.setConnectionFactory(connectionFactory); container.addMessageListener(messageListener(), topic()); return container; } @Bean ChannelTopic topic() { return new ChannelTopic("messageQueue"); }}
测试类:
import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.data.redis.core.StringRedisTemplate;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import javax.annotation.Resource;/** * @date 2019-05-25 10:59 */@RunWith(SpringJUnit4ClassRunner.class)@SpringBootTestpublic class RedisTest { @Resource private StringRedisTemplate stringRedisTemplate; @Test public void test(){ stringRedisTemplate.convertAndSend("messageQueue","hello world"); }}