SpringBoot整合activemq的案例代码

网友投稿 442 2022-08-29


SpringBoot整合activemq的案例代码

目录ActiveMQ是什么1.安装activemq(linux)2.SpringBoot整合activemq案例2.1 pom.xml2.2 application.properties2.3 消息实体2.4 主程序2.5 定义消息的发送和接收方法2.6 测试

ActiveMQ是什么

ActiveMQ是消息队列技术,为解决高并发问题而生ActiveMQ生产者消费者模型(生产者和消费者可以跨平台、跨系统)ActiveMQ支持如下两种消息传输方式

点对点模式,生产者生产了一个消息,只能由一个消费者进行消费发布/订阅模式,生产者生产了一个消息,可以由多个消费者进行消费

1.安装activemq(linux)

1.下载压缩包,地址链接: https://activemq.apache.org/components/classic/download/.

2.利用xshell上传压缩包到linux上,并且解压

3.进入到bin目录启动,通过./activemq start命令启动activemq

4.在宿主http://主机范文虚拟机ip地址加上端口号8161,会出现登录弹框叫我们输入用户名和密码,用户名和密码都是admin。如下界面即代表active安装成功

5.要注意的坑!1)linux主机和宿主主机的防火墙都要关闭2)linux主机和宿主主机一定要互ping得通3)如果linux主机和宿主主机互ping得通,但是却访问不了activemq的端口,那就参考这篇文章,把conf目录下的jetty.xml文件中的地址为linux主机的ip地址,就可以访问了。文章链接: https://jb51.net/LINUXjishu/810589.html.

4)activemq还依赖java环境,所以linux上也要安装java环境

2.SpringBoot整合activemq案例

2.1 pom.xml

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

org.springframework.boot

spring-boot-starter-parent

2.6.3

com.yl

jms

0.0.1-SNAPSHOT

jms

Demo project for Spring Boot

11

org.springframework.boot

spring-boot-starter-activemq

spring-boot-starter-web

spring-boot-starter-test

test

org.springframework.boot

spring-boot-maven-plugin

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

org.springframework.boot

spring-boot-starter-parent

2.6.3

com.yl

jms

0.0.1-SNAPSHOT

jms

Demo project for Spring Boot

11

org.springframework.boot

spring-boot-starter-activemq

spring-boot-starter-web

spring-boot-starter-test

test

org.springframework.boot

spring-boot-maven-plugin

2.2 application.properties

# activemq的配置

# 地址

spring.activemq.broker-url=tcp://192.168.244.135:61616

# 信任所有的包

spring.activemq.packages.trust-all=true

# 用户名

spring.activemq.user=admin

# 密码

spring.activemq.password=admin

2.3 消息实体

package com.yl.jms.model;

import java.io.Serializable;

import java.util.Date;

public class Message implements Serializable {

private String content;

private Date date;

public String getContent() {

return content;

}

public void setContent(String content) {

this.content = content;

public Date getDate() {

tdUCI return date;

public void setDate(Date date) tdUCI{

this.date = date;

@Override

public String toString() {

return "Message{" +

"content='" + content + '\'' +

", date=" + date +

tdUCI '}';

}

2.4 主程序

package com.yl.jms;

import org.apache.activemq.command.ActiveMQQueue;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.context.annotation.Bean;

import javax.jms.Queue;

@SpringBootApplication

public class JmsApplication {

public static void main(String[] args) {

SpringApplication.run(JmsApplication.class, args);

}

@Bean

Queue queue() {

return new ActiveMQQueue("yl-queue");

}

2.5 定义消息的发送和接收方法

package com.yl.jms.config;

import com.yl.jms.model.Message;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.jms.annotation.EnableJms;

import org.springframework.jms.annotation.JmsListener;

import org.springframework.jms.core.JmsMessagingTemplate;

import org.springframework.stereotype.Component;

import javax.jms.Queue;

@Component

public class JmsComponent {

//消息发送模板

@Autowired

JmsMessagingTemplate jmsMessagingTemplate;

Queue queue;

//发送消息

public void send(Message message) {

jmsMessagingTemplate.convertAndSend(queue,message);

}

//接收消息

@JmsListener(destination = "yl-queue")

public void receive(Message message) {

System.out.println("message:" + message);

}

2.6 测试


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:python枚举之Enum模块(枚举类型enum用法)
下一篇:python Apscheduler持久化
相关文章

 发表评论

暂时没有评论,来抢沙发吧~