zoukankan      html  css  js  c++  java
  • spring-data-redis 订阅发布实例

    spring-data-redis 怎么监听消息队列有消息来了

    pom.xml中添加如下配置
    添加版本配置
    <properties>
      <jedis.version>2.8.1</jedis.version>
      <spring-data-redis.version>1.7.2.RELEASE</spring-data-redis.version>
      <commons-pool2.version>2.2</commons-pool2.version>
    </properties>
        <!-- jedis -->
        <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
            <version>${jedis.version}</version>
        </dependency>
    
        <dependency>
          <groupId>org.apache.commons</groupId>
          <artifactId>commons-pool2</artifactId>
          <version>${commons-pool2.version}</version>
        </dependency>
    
        <!-- https://mvnrepository.com/artifact/org.springframework.data/spring-data-redis -->
        <dependency>
          <groupId>org.springframework.data</groupId>
          <artifactId>spring-data-redis</artifactId>
          <version>${spring-data-redis.version}</version>
        </dependency>
    
    properties文件中添加如下配置
    #redis配置
    redis.host=192.168.1.150
    redis.port=6379
    redis.password=redis
    redis.timeout=2000
    redis.max_total=100
    redis.max_idle=20
    redis.min_idle=5
    redis.test_on_borrow=true
    redis.test_on_return=true
    
    applicationContext.xml中添加如下配置:
    <!-- Jedis 连接池配置-->
    <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
        <property name="maxIdle" value="${redis.max_idle}" />
        <property name="maxTotal" value="${redis.max_total}"/>
        <property name="minIdle" value="${redis.min_idle}"/>
        <property name="testOnBorrow" value="${redis.test_on_borrow}" />
        <property name="testOnReturn" value="${redis.test_on_return}"/>
    </bean>
    
    <!-- Jedis ConnectionFactory 数据库连接配置,注意id名称必须为redisConnectionFactory-->
    <bean id="redisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
        <property name="hostName" value="${redis.host}" />
        <property name="port" value="${redis.port}" />
        <property name="password" value="${redis.password}" />
        <property name="poolConfig" ref="jedisPoolConfig" />
    </bean>
    
    定义消息发送者(生产者):
    @Component
    public class SendMessage {
    
        @Autowired
        private RedisTemplate<String, Object> redisTemplate;
    
        public void sendMessage(String channel, Serializable message) {
            redisTemplate.convertAndSend(channel, message);
        }
    }
    
    定义消息处理者(消费者):
    public class ListenMessage {
        public void handleMessage(Serializable message){
            System.out.println(message);
        }
    }
    
    调用:/queue/redis
    @Controller
    @RequestMapping(value = "/queue")
    public class QueueController {
    
        @Autowired
        SendMessage sendMessage;
    
        @RequestMapping(value="/redis")
        public void redis(){
            for (int i = 0; i <1000; i++) {
                sendMessage.sendMessage("java",i);
            }
        }
    }
    
  • 相关阅读:
    假设用一个名为text的字符串向量存放文本文件的数据,其中的元素或者是一句话或者是一个用于表示段分隔的空字符串。将text中第一段全改为大写形式
    迭代器介绍
    从cin读入一组词并把它们存入一个vector对象,然后设法把所有词都改写为大写字母。
    标准库类型vector
    css 滤镜之AlphaImageLoader
    css设置背景图片自适应
    网易云音乐怎么免费下载付费歌曲
    font-family,font-size,color
    css设置图片居中、居左、居右
    数据库语句之建表、拷贝数据表
  • 原文地址:https://www.cnblogs.com/mjzhang/p/5980065.html
Copyright © 2011-2022 走看看