& 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(“信息:“+文本); } }
好吧~
但是这样有另外一个问题:如果开启了订阅者和发布者模式则无法发送和接收队列消息。
这里我提供两种写法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配置详解