目的:Springboot Redis Sublish/Publishのシンプルな実装
2849 ワード
目的:Springboot Redis Sublish/Publishのシンプルな実装
環境:win 10 idea 2019.2
手順:
1.依存のインポート
2.ブロードキャストの構成:ブロードキャスト関連beanをredisに追加し、handleのリスニングと受信を設定する
3.メッセージパブリケーションSublishは、メッセージをパブリッシュする必要がある場所に次のコードを追加すればよい.
環境:win 10 idea 2019.2
手順:
1.依存のインポート
org.springframework.boot
spring-boot-starter-data-redis
2.ブロードキャストの構成:ブロードキャスト関連beanをredisに追加し、handleのリスニングと受信を設定する
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;
import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
@Configuration
public class RedisConfiguration {
@Bean
@ConfigurationProperties(prefix = "spring.redis")
public JedisConnectionFactory getConnectionFactory() {
JedisConnectionFactory factory = new JedisConnectionFactory();
return factory;
}
//TODO
// redis
/* message */
@Bean
MessageListenerAdapter messageListenerAdapter () {
return new MessageListenerAdapter((MessageListener) (message, pattern) -> {
//TODO
// 。 , ip/mac 。
System.out.println("message.toString()");
});
}
/* , */
@Bean
RedisMessageListenerContainer redisMessageListenerContainer(JedisConnectionFactory jedisConnectionFactory) {
RedisMessageListenerContainer container = new RedisMessageListenerContainer();
container.setConnectionFactory(jedisConnectionFactory);
container.addMessageListener(messageListenerAdapter(), channelTopic());
return container;
}
/* , , connectionFactory, RedisConnectionFactory
@Bean
RedisMessageListenerContainer redisMessageListenerContainer(RedisConnectionFactory connectionFactory) {
RedisMessageListenerContainer container = new RedisMessageListenerContainer();
container.setConnectionFactory(connectionFactory);
container.addMessageListener(messageListenerAdapter(), channelTopic());
return container;
}
*/
/* , "messageQueue" */
@Bean
ChannelTopic channelTopic () {
return new ChannelTopic("broadCast_Queue_Test");
}
}
3.メッセージパブリケーションSublishは、メッセージをパブリッシュする必要がある場所に次のコードを追加すればよい.
//
@Autowired
StringRedisTemplate stringRedisTemplate ;
// , ( jsonString, json )
// 。
stringRedisTemplate .convertAndSend("broadCast_Queue_Test","This is a sublish message");