国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

SpringBoot非官方教程 | 第十四篇:在springboot中用redis實(shí)現(xiàn)消息隊(duì)列

APICloud / 3068人閱讀

摘要:環(huán)境依賴創(chuàng)建一個新的工程,在其文件加入依賴創(chuàng)建一個消息接收者類,它是一個普通的類,需要注入到中。

這篇文章主要講述如何在springboot中用reids實(shí)現(xiàn)消息隊(duì)列。

準(zhǔn)備階段
安裝redis,可參考我的另一篇文章,5分鐘帶你入門Redis。
java 1.8
maven 3.0
idea
環(huán)境依賴

創(chuàng)建一個新的springboot工程,在其pom文件,加入spring-boot-starter-data-redis依賴:


    org.springframework.boot
    spring-boot-starter-data-redis

創(chuàng)建一個消息接收者

REcevier類,它是一個普通的類,需要注入到springboot中。

public class Receiver {
    private static final Logger LOGGER = LoggerFactory.getLogger(Receiver.class);

    private CountDownLatch latch;

    @Autowired
    public Receiver(CountDownLatch latch) {
        this.latch = latch;
    }

    public void receiveMessage(String message) {
        LOGGER.info("Received <" + message + ">");
        latch.countDown();
    }
}
注入消息接收者
@Bean
Receiver receiver(CountDownLatch latch) {
    return new Receiver(latch);
}

@Bean
CountDownLatch latch() {
    return new CountDownLatch(1);
}

@Bean
StringRedisTemplate template(RedisConnectionFactory connectionFactory) {
    return new StringRedisTemplate(connectionFactory);
}
注入消息監(jiān)聽容器

在spring data redis中,利用redis發(fā)送一條消息和接受一條消息,需要三樣?xùn)|西:

一個連接工廠
一個消息監(jiān)聽容器
Redis template

上述1、3步已經(jīng)完成,所以只需注入消息監(jiān)聽容器即可:

    @Bean
    RedisMessageListenerContainer container(RedisConnectionFactory connectionFactory,
                                            MessageListenerAdapter listenerAdapter) {

        RedisMessageListenerContainer container = new RedisMessageListenerContainer();
        container.setConnectionFactory(connectionFactory);
        container.addMessageListener(listenerAdapter, new PatternTopic("chat"));

        return container;
    }

   @Bean
    MessageListenerAdapter listenerAdapter(Receiver receiver) {
        return new MessageListenerAdapter(receiver, "receiveMessage");
    }
測試

在springboot入口的main方法:

public static void main(String[] args) throws Exception{
        ApplicationContext ctx =  SpringApplication.run(SpringbootRedisApplication.class, args);

        StringRedisTemplate template = ctx.getBean(StringRedisTemplate.class);
        CountDownLatch latch = ctx.getBean(CountDownLatch.class);

        LOGGER.info("Sending message...");
        template.convertAndSend("chat", "Hello from Redis!");

        latch.await();

        System.exit(0);
    }

先用redisTemplate發(fā)送一條消息,接收者接收到后,打印出來。啟動springboot程序,控制臺打印:

2017-04-20 17:25:15.536 INFO 39148 — [ main] com.forezp.SpringbootRedisApplication : Sending message…
2017-04-20 17:25:15.544 INFO 39148 — [ container-2] com.forezp.message.Receiver : 》Received 

源碼下載:

https://github.com/forezp/Spr...

參考資料

messaging-redis

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/67814.html

相關(guān)文章

  • SpringBoot官方教程 | 第二十四篇springboot整合docker

    摘要:是一個開源的應(yīng)用容器引擎,基于語言并遵從協(xié)議開源。準(zhǔn)備工作環(huán)境環(huán)境或不要用對一無所知的看教程。創(chuàng)建一個工程引入的起步依賴,創(chuàng)建一個將工程容器化有一個簡單的文件作為指定鏡像的圖層。說明的工程已部署。停止鏡像刪除鏡像參考資料源碼下載 這篇文篇介紹,怎么為 springboot程序構(gòu)建一個docker鏡像。docker 是一個開源的應(yīng)用容器引擎,基于 Go 語言 并遵從Apache2.0協(xié)議...

    piapia 評論0 收藏0
  • SpringBoot官方教程 | 第十五篇:Springboot整合RabbitMQ

    摘要:創(chuàng)建消息監(jiān)聽,并發(fā)送一條消息在程序中,提供了發(fā)送消息和接收消息的所有方法。 這篇文章帶你了解怎么整合RabbitMQ服務(wù)器,并且通過它怎么去發(fā)送和接收消息。我將構(gòu)建一個springboot工程,通過RabbitTemplate去通過MessageListenerAdapter去訂閱一個POJO類型的消息。 準(zhǔn)備工作 15min IDEA maven 3.0 在開始構(gòu)建項(xiàng)目之前,機(jī)器需...

    HollisChuang 評論0 收藏0
  • SpringBoot官方教程 | 第十三篇:springboot集成spring cache

    摘要:本文介紹如何在中使用默認(rèn)的聲明式緩存定義和接口用來統(tǒng)一不同的緩存技術(shù)。在使用集成的時候,我們需要注冊實(shí)現(xiàn)的的。默認(rèn)使用在我們不使用其他第三方緩存依賴的時候,自動采用作為緩存管理器。源碼下載參考資料揭秘與實(shí)戰(zhàn)二數(shù)據(jù)緩存篇快速入門 本文介紹如何在springboot中使用默認(rèn)的spring cache 聲明式緩存 Spring 定義 CacheManager 和 Cache 接口用來統(tǒng)一不...

    Magicer 評論0 收藏0
  • 一起來學(xué)SpringBoot | 第十二篇:初探RabbitMQ消息隊(duì)列

    摘要:用于控制活動人數(shù),將超過此一定閥值的訂單直接丟棄。緩解短時間的高流量壓垮應(yīng)用。目前比較推薦的就是我們手動然后將消費(fèi)錯誤的消息轉(zhuǎn)移到其它的消息隊(duì)列中,做補(bǔ)償處理消費(fèi)者該方案是默認(rèn)的方式不太推薦。 SpringBoot 是為了簡化 Spring 應(yīng)用的創(chuàng)建、運(yùn)行、調(diào)試、部署等一系列問題而誕生的產(chǎn)物,自動裝配的特性讓我們可以更好的關(guān)注業(yè)務(wù)本身而不是外部的XML配置,我們只需遵循規(guī)范,引入相...

    Baoyuan 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<