首页 > 其他分享 >④ActiveMQ 与 SpringBoot 集成——(动力节点)ActiveMQ笔记

④ActiveMQ 与 SpringBoot 集成——(动力节点)ActiveMQ笔记

时间:2023-05-19 17:07:07浏览次数:40  
标签:SpringBoot boot 节点 message ActiveMQ public defaultMessageListenerContainer

第四章 ActiveMQ 与 SpringBoot 集成

4-1 ActiveMQ 与 SpringBoot 集成集成配置

1、加载 spring boot 的 activeMQ 的依赖

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

2、编写一个消息发送者

@Component     
	public class MessageSender {                                                                     
@Autowired //注入JmsTemplate                          
	public class MessageSender {                           
private JmsTemplate jmsTemplate;
//发送消息,  destination是发送到的队列,  message是待发送的消息
public void sendMessage(String message) {
jmsTemplate.send("myQueue", new MessageCreator() { 
@Override
public Message createMessage(Session session) throws
JMSException {
     return session.createTextMessage(message);       
  }                                             
    });                                            
     }                                             
} 
    }

3、编写一个消息接收者

@Component
public class MessageReceiver {
@Autowired
private JmsTemplate jmsTemplate;
// 发送消息,  destination是发送到的队列,  message是待发送的消息
public void receiveMessage() throws JMSException{
Message message = jmsTemplate.receive("myQueue"); if (message instanceof TextMessage) {
System.out.println(((TextMessage)message).getText());
 }
}
}

application.perperties 配置连接信息;

4-2 ActiveMQ 与 SpringBoot 集成点对点消息

同步接收 异步接收

4-3 ActiveMQ 与 SpringBoot 集成发布订阅消息

1、加载 spring boot 的 ActiveMQ 的依赖 2、编写一个消息发布者 3、编写一个消息订阅者 Spring boot 集成 activemq 默认是采用点对点方式,要使用发布订阅方式 ,需要在核心配置文件中配置:spring.jms.pub-sub-domain=true

4-4 ActiveMQ 与 SpringBoot 集成同步/异步接收消息

@Configuration
public class ActiveMQConfig {
@Autowired
private ActiveMQConnectionFactory jmsConnectionFactory; @Bean
public DefaultMessageListenerContainer
defaultMessageListenerContainer() {
DefaultMessageListenerContainer
defaultMessageListenerContainer = new
DefaultMessageListenerContainer();

defaultMessageListenerContainer.setConnectionFactory(jmsConnec tionFactory);
defaultMessageListenerContainer.setDestinationName("myQueue");
defaultMessageListenerContainer.setMessageListener(new MyMessageListener());
return defaultMessageListenerContainer;
}
}
public class MyMessageListener implements MessageListener {
@Override
public void onMessage(Message message) {
if (message instanceof TextMessage) {
String text = null;
try {
text = ((TextMessage) message).getText(); } catch (JMSException e) {
e.printStackTrace();
}
System.out.println("接收到的消息为:  " + text);
}
}
}  

标签:SpringBoot,boot,节点,message,ActiveMQ,public,defaultMessageListenerContainer
From: https://blog.51cto.com/u_16033248/6313907

相关文章

  • SpringBoot整合knife4j(swagger)
    关于knife4jKnife4j是一个基于Swagger的Java接口文档生成工具,它提供了一套可视化的界面来展示和测试API接口。Knife4j通过解析接口代码中的Swagger注解,自动生成接口文档,并提供了交互式的API文档界面,方便开发者查看和测试接口。引用官方的一句描述Knife4j是一个集Swagger2和Open......
  • el-tree实现自定义节点内容
    <!--*@Descripttion:el-tree实现自定义节点内容*@version:*@Author:zhangfan*@email:[email protected]*@Date:2020-07-0309:10:28*@LastEditors:zhangfan*@LastEditTime:2020-07-1611:21:20--><template><divclass="treeBo......
  • 获取树结构表最底层节点信息
    1、这里以mongo表为例//1、查询根节点IDList<T>list=mongoTemplate.find(Query.query(Criteria.where("parentId").is("")),T.class);List<String>rootIds=list.stream().map(x->x.getId()).collect(Collectors.toList());//2、根据根节点ID查询出所......
  • SpringBoot配置过滤器、拦截器
    拦截器概述SpringBoot提供了一种简单且强大的方式来定义和使用拦截器(Interceptor)。SpringBoot的拦截器基于Spring框架的拦截器机制,可以在请求的处理过程中插入自定义的逻辑。SpringBoot的拦截器主要用于在请求处理的不同阶段执行额外的逻辑操作,比如在请求进入控制器方法之前......
  • Springboot支持XML格式报文的传输
    导入依赖-jackson-dataformat-xml<!--整合web模块--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><exclusions>......
  • SpringBoot 配置统一API对象返回
    1、前言在实际项目开发中,为了便于前端进行响应处理,需要统一返回类格式。特别是在有多个后端开发人员参与的情况下,如果不规范返回类,每个人按照个人习惯返回数据,前端将面临各式各样的返回数据,难以统一处理。为解决这个问题,我们需要规范后端的返回数据,并定义一个统一的返回类,所有数......
  • SpringBoot单元测试只${spring.profiles.active}异常
    在使用SpringBoot进行单元测试时,如果遇到「couldnotresolveplaceholder'spring.profiles.active'」的错误提示,通常是因为你在测试用例中使用了@ActiveProfiles注解来激活某些特定的配置文件,但是你的项目中并没有这些指定的配置文件。为了解决这个问题,你需要检查你的测试......
  • 【小小demo】Springboot + Vue 增删改查
    vue-table-ui该工程提供的是一个简单的Vue+Element-UI的表格,增删改查操作。工程代码在最下面。环境jdk1.8ideamavenspringboot2.1.1.RELEASE示例首页查询新增修改删除官方文档Element-Ui:https://element.eleme.cn/#/zh-CN/component/installationV......
  • Springboot集成Netty实现TCP通讯
    Netty测试客户端packagecom.coremain;importcom.coremain.handler.ServerListenerHandler;importio.netty.bootstrap.Bootstrap;importio.netty.buffer.Unpooled;importio.netty.channel.Channel;importio.netty.channel.ChannelFuture;importio.netty.channel.Cha......
  • springboot项目引入公用项目
    <!--公共interface模块--><dependency><groupId>com.hcp</groupId><artifactId>dubbointerface</artifactId><version>0.0.1-SNAPSHOT</version></depende......