转:spring boot + ActiveMQ 实现消息服务
首先,我在github上找到了一个不错的demo,这里放给大家一起看下:
确实可以实现功能,但是当我在8161默认的admin端口进行queue查询时,发现并没有我们的github-queue,虽然不太清楚具体的原因,但是解决方式倒是找到了,下面贴一下自己的实现:
pox.xml:
<!-- ActiveMQ --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jms</artifactId> </dependency> <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-all</artifactId> <version>5.13.2</version> </dependency>
application.properties:
spring.activemq.in-memory=true spring.activemq.pooled=false
接下来就是jms的配置了,首先是ActiveMQ4Config文件:
@EnableJms @Configuration public class ActiveMQ4Config { @Bean public Queue queue() { return new ActiveMQQueue("github-queue"); } @Bean public ActiveMQConnectionFactory activeMQConnectionFactory (){ ActiveMQConnectionFactory activeMQConnectionFactory = new ActiveMQConnectionFactory( ActiveMQConnectionFactory.DEFAULT_USER, ActiveMQConnectionFactory.DEFAULT_PASSWORD, // "tcp://192.168.0.100:61616"); ActiveMQConnectionFactory.DEFAULT_BROKER_URL); return activeMQConnectionFactory; } }
注释掉的那行,可以用来指定activemq的broker地址。
接下来的Producer和Consumer与github上一样:
@Component public class Producer implements CommandLineRunner{ @Autowired private JmsMessagingTemplate jmsMessagingTemplate; @Autowired private Queue queue; @Override public void run(String... args) throws Exception { send("this message is send on begining!"); System.out.println("Message was sent to the Queue"); } public void send(String msg) { this.jmsMessagingTemplate.convertAndSend(this.queue, msg); } }
@Component public class Consumer { @JmsListener(destination = "github-queue") public void receiveQueue(String text) { System.out.println(text); } }
这样一来就完成了配置,而且在8161默认admin进行查询时,是能够查询到我们的github-queue这个队列的。
具体的测试,可以自己进行,这里不再贴测试用例了。
相关推荐
胡献根 2020-07-18
胡献根 2020-07-05
jiangtie 2020-06-10
onlylixiaobei 2020-06-09
xinglun 2020-06-02
方新德 2020-05-31
Java高知 2020-05-20
Java高知 2020-05-08
Java高知 2020-05-03
onlylixiaobei 2020-05-02
Java高知 2020-04-22
胡献根 2020-04-22
heweiyabeijing 2020-04-21
方新德 2020-04-20
胡献根 2020-04-10
onlylixiaobei 2020-04-10
方新德 2020-04-08
xuedabao 2020-03-30