SpringBoot2.0中使用訂閱redis的多個頻道的訊息

來源:互聯網
上載者:User

標籤:new   AC   void   actor   項目   blog   redist   top   oid   

聲明:參考文章:75471012?locationNum=2&fps=1

一·使用maven,在項目中引入redis啟動器

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-data-redis</artifactId>

</dependency>

二.註冊一個redis訊息監聽類

@Configurationpublic class RedisSubListenerConfig {    //不同的頻道名    private static final  String channel = "testchannel";    private static final  String channel2 = "chat";         /**     * redis訊息監聽器容器     * 可以添加多個監聽不同話題的redis監聽器,只需要把訊息監聽器和相應的訊息訂閱處理器綁定,該訊息監聽器     * 通過反射技術調用訊息訂閱處理器的相關方法進行一些業務處理     * @param connectionFactory     * @param listenerAdapter     * @return     */    @Bean //相當於xml中的bean    RedisMessageListenerContainer container(RedisConnectionFactory connectionFactory,                                            MessageListenerAdapter listenerAdapter,MessageListenerAdapter listenerAdapter2) {        RedisMessageListenerContainer container = new RedisMessageListenerContainer();        container.setConnectionFactory(connectionFactory);        //訂閱了一個叫testchannel 的通道        container.addMessageListener(listenerAdapter, new PatternTopic(RedisSubListenerConfig.channel));        //訂閱了一個叫chat的頻道        container.addMessageListener(listenerAdapter2, new PatternTopic(RedisSubListenerConfig.channel2));        return container;    }    /**     * 訊息監聽器適配器,綁定訊息處理器,利用反射技術調用訊息處理器的業務方法     * @param receiver     * @return     */    @Bean    MessageListenerAdapter listenerAdapter(MessageReceiver receiver) {        return new MessageListenerAdapter(receiver, "receiveMessage");    }        @Bean    MessageListenerAdapter listenerAdapter2(MessageReceiver receiver) {        return new MessageListenerAdapter(receiver, "receiveMessage2");    }    /**redis 讀取內容的template */    @Bean    StringRedisTemplate template(RedisConnectionFactory connectionFactory) {        return new StringRedisTemplate(connectionFactory);    }}

三·編寫處理訂閱訊息的類

@Componentpublic class MessageReceiver {     /**接收訊息的方法*/    public void receiveMessage(String message){        System.out.println("收到一條訊息:"+message);    }        /**接收訊息的方法*/    public void receiveMessage2(String message){        System.out.println("收到一條訊息2:"+message);    }}

 

四.啟動程式,向redis的chat以及testchannel頻道中發送訊息,都可以監聽到

SpringBoot2.0中使用訂閱redis的多個頻道的訊息

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.