SpringBoot集成JmsTemplate(队列模式和主题模式)及xml和JavaConfig配置详解

  

        & lt; !——jmsTemplate祝辞   & lt; dependency>   & lt; groupId> org.springframework.boot   & lt; artifactId> spring-boot-starter-activemq   & lt;/dependency>   & lt; dependency>   & lt; groupId> org.apache.activemq   & lt; artifactId> activemq-pool   & lt;/dependency>      

        #设置JMS (AMQ)   spring.activemq.broker-url=tcp://localhost: 61616   spring.activemq.user=admin   spring.activemq.password=admin   spring.activemq.pool.enabled=true   # spring.jms.pub-sub-domain=true   spring.activemq.pool.max-connections=50   spring.activemq.pool.expiry-timeout=10000   spring.activemq.pool.idle-timeout=30000      

上面需要注意的是,如果开启订阅者和发布者模式下面的代码会使监听器失效。

  

        @RestController   @RequestMapping (“/Jms”)   公开课ProducerController {      @ autowired   私人JmsProducerService JmsProducerService;      @RequestMapping("/发送”)   公共空间contextLoads()抛出InterruptedException {   目的地目的地=new ActiveMQQueue (“mytest.queue”);   for (int i=0;i<10;我+ +){   jmsProducerService。sendMessage(目的地,“我是超人啊”);   }   System.out.println(“发送成功”);   }      }      

        包com.zzf.finals.service.impl;      进口com.zzf.finals.service.JmsProducerService;   进口org.springframework.beans.factory.annotation.Autowired;   进口org.springframework.jms.core.JmsTemplate;   进口org.springframework.stereotype.Service;      进口destination;      @ service   公共类JmsProducerServiceImpl实现JmsProducerService {      @ autowired   私人JmsTemplate JmsTemplate;      @Override   公共空间sendMessage(目的地目的地,字符串消息){   this.jmsTemplate.convertAndSend(目的地,消息);   }   }      

        包com.zzf.finals.domain;      进口org.springframework.jms.annotation.JmsListener;   进口org.springframework.stereotype.Component;      @ component   公共类消费者{      @JmsListener(目的地=癿ytest.queue”)   公共空间receiveQueue(字符串文本){   System.out.println(“信息:“+文本);   }   }      

 SpringBoot集成JmsTemplate(队列模式和主题模式)及xml和JavaConfig配置详解

  

 SpringBoot集成JmsTemplate(队列模式和主题模式)及xml和JavaConfig配置详解

  

好吧~   

但是这样有另外一个问题:如果开启了订阅者和发布者模式则无法发送和接收队列消息。

  

这里我提供两种写法xml和java配置:

  

首先贴上我的xml配置代码

        & lt; & # 63; xml version=" 1.0 " encoding=" utf - 8 " & # 63;比;   & lt;豆类xmlns=" http://www.springframework.org/schema/beans "   xmlns: xsi=" http://www.w3.org/2001/XMLSchema-instance "   xsi: schemaLocation=" http://www.springframework.org/schema/beans   http://www.springframework.org/schema/beans/spring-beans.xsd”比;      & lt; !——连接池,内部引入一个连接工厂——比;   & lt; bean id=癹msFactory”类=皁rg.apache.activemq.pool.PooledConnectionFactory”   销毁方法=巴V埂北?   & lt;属性名=癱onnectionFactory”比;   & lt; bean类=皁rg.apache.activemq.ActiveMQConnectionFactory”比;   & lt;属性名=癰rokerURL”比;   & lt; value> tcp://localhost: 61616 & lt;/value>   & lt;/property>   & lt;/bean>   & lt;/property>   & lt;属性名=" maxConnections " value=" https://www.yisu.com/zixun/100 "祝辞& lt;/property>   & lt;/bean>         & lt; bean id=癲estinationQueue”类=皁rg.apache.activemq.command.ActiveMQQueue”比;   & lt; constructor-arg名称="名称" value=" https://www.yisu.com/zixun/spring-queue "/比;   & lt;/bean>      & lt; !——测试主题——比;   & lt; bean id=癲estinationTopic”类=皁rg.apache.activemq.command.ActiveMQTopic”比;   & lt; constructor-arg名称="名称" value=" https://www.yisu.com/zixun/spring-topic "/比;   & lt;/bean>      & lt; !——配置消息容器——比;   & lt; bean id=癟opicContainers”类=皁rg.springframework.jms.config.DefaultJmsListenerContainerFactory”比;   & lt;属性名=" pubSubDomain " value=" https://www.yisu.com/zixun/true "/比;   & lt;属性名=" connectionFactory " ref=" jmsFactory "/比;   & lt;/bean>      & lt; !——配置队列消息容器——比;   & lt; bean id=癚ueueContainers”类=皁rg.springframework.jms.config.DefaultJmsListenerContainerFactory”比;   & lt;属性名=" connectionFactory " ref=" jmsFactory "/比;   & lt;/bean>      & lt;/beans>

SpringBoot集成JmsTemplate(队列模式和主题模式)及xml和JavaConfig配置详解