Spring-boot项目整合Activemq实现订阅发布模式

简介: Apache ActiveMQ是Apache软件基金会所研发的开放源代码消息中间件;由于ActiveMQ是一个纯Java程序,因此只需要操作系统支持Java虚拟机,ActiveMQ便可执行。

1.在项目POM中配置

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-activemq</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.activemq</groupId>
            <artifactId>activemq-pool</artifactId>
        </dependency>

2.在application.properties中配置

spring.jms.pub-sub-domain = true
spring.activemq.user = admin
spring.activemq.password = admin
spring.activemq.in-memory=true
spring.activemq.pool.enabled=false
spring.activemq.pool.maxConnections = 50
spring.activemq.pool.idleTimeout = 30000
spring.activemq.packages.trust-all = true
spring.activemq.broker-url = tcp://127.0.0.1:61616

3.配置Activemq发送消息类


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jms.core.JmsMessagingTemplate;
import org.springframework.stereotype.Component;

import javax.jms.Queue;

@Component
public class JMSProducer {

    @Autowired
    private JmsMessagingTemplate jmsMessagingTemplate;
    @Autowired
    private Queue queue;

    public void sendMessage( String message) {
        this.jmsMessagingTemplate.convertAndSend(queue, message);
    }
}

4.在配置发送消息的业务对象中添加jmsProducer消息发送对象

    @Autowired
    private JMSProducer jmsProducer;

5.使用jmsProducer消息发送对象

                        jmsProducer.sendMessage("hello word");

6.在另一个服务中实现消息消费


@Component
public class Consumer {
 
    @JmsListener(destination = "demo.test")
    public void receiveQueue(String text) {
        System.out.println(text);
    }
}

7.在SpringBootApplication对象中添加

@EnableJms //配置在对象上面
//配置在对象内进行注入
@Bean 
    public Queue queue() {
        return new ActiveMQQueue("huobi.kline.k");
    }

8.以上配置都属于初步在项目中整合Activemq,后期会提供更加深入都优化解析配置。

相关文章
|
2月前
|
Java Spring
【编程笔记】在 Spring 项目中使用 RestTemplate 发送网络请求
【编程笔记】在 Spring 项目中使用 RestTemplate 发送网络请求
94 0
|
2月前
|
SpringCloudAlibaba Java 持续交付
【构建一套Spring Cloud项目的大概步骤】&【Springcloud Alibaba微服务分布式架构学习资料】
【构建一套Spring Cloud项目的大概步骤】&【Springcloud Alibaba微服务分布式架构学习资料】
196 0
|
7天前
|
XML Java 数据格式
Spring 项目如何使用AOP
Spring 项目如何使用AOP
21 2
|
7天前
|
Java Spring
Spring boot项目如何发送邮件
Spring boot项目如何发送邮件
17 2
|
14天前
|
Java API 数据安全/隐私保护
【亮剑】如何在Java项目中结合Spring框架实现邮件发送功能
【4月更文挑战第30天】本文介绍了如何在Java项目中结合Spring框架实现邮件发送功能。首先,需在`pom.xml`添加Spring和JavaMail依赖。然后,在`applicationContext.xml`配置邮件发送器,包括SMTP服务器信息。接着,创建一个使用依赖注入的`EmailService`类,通过`JavaMailSender`发送邮件。最后,调用`EmailService`的`sendSimpleEmail`方法即可发送邮件。最佳实践包括:使用配置管理敏感信息,利用`MimeMessage`构造复杂邮件,异常处理和日志记录,以及在大量发送时考虑使用邮件队列。
|
18天前
|
Java Maven Docker
0.07 秒启动一个 SpringBoot 项目!Spring Native 很强!!
0.07 秒启动一个 SpringBoot 项目!Spring Native 很强!!
26 2
|
25天前
|
Java Linux 虚拟化
Docker 部署spring-boot项目(超详细 包括Docker详解、Docker常用指令整理等)
Docker 部署spring-boot项目(超详细 包括Docker详解、Docker常用指令整理等)
56 1
|
25天前
|
存储 Java Maven
江帅帅:Spring Boot 底层级探索系列 01- 搭建项目
江帅帅:Spring Boot 底层级探索系列 01- 搭建项目
35 0
江帅帅:Spring Boot 底层级探索系列 01- 搭建项目
|
29天前
|
缓存 Java Spring
单体项目中资源管理模块集成Spring Cache
该内容是关于将Spring Cache集成到资源管理模块以实现缓存同步的说明。主要策略包括:查询时添加到缓存,增删改时删除相关缓存。示例代码展示了@Service类中使用@Transactional和@Cacheable注解进行缓存操作,以及在RedisTemplate中处理缓存的示例。
24 5
|
29天前
|
Java Shell 开发者
个人开发者,Spring Boot 项目如何部署
个人开发者部署Spring Boot项目教程:利用Linux、docker和docker-compose。项目目录包含`Dockerfile`、`docker-compose.yml`和脚本`build-docker-compose.sh`。`Dockerfile`基于`openjdk:17-jdk-alpine`构建镜像,设置时区并添加jar。`docker-compose.yml`定义服务,映射端口和挂载数据卷。升级时,将新jar放入`jars`目录,运行`sh build-docker-compose.sh`更新容器。
23 1