Spring JMS应用

ibm mq java开发_使用 Spring Boot 开发 MQ JMS 应用程序 IBM MQ 包含一个 Spring Boot Starter,使 Spring 开发人员能轻松地配置 IBM MQ JMS 包。MQ 使应用程序能够以可靠且可扩展的方式相互通信和共享数据,从而使一个应用程序与另一个应用程序解耦。这种方式有助于基于不同框架、语言、平台、云和位置运行的应用程序集成。学习目标本教程将介绍如何使用 MQ Spring JMS Starter 从 Spring Boot ... 阅读详情
JMS用于系统间的异步通信,在将系统功能进行纵向拆分时,是很好的解决方案,通过消息驱动来实现业务分离。

消息中间件有很多,开源的有Apache的ActiveMQ,商业的有IBM MQ等,以下是基于ActiveMQ的spring配置

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:amq="http://activemq.apache.org/schema/core"
	xmlns:jms="http://www.springframework.org/schema/jms"
	xmlns:aop="http://www.springframework.org/schema/aop"
	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-3.0.xsd
		   http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core-5.2.0.xsd
		   http://www.springframework.org/schema/jms http://www.springframework.org/schema/jms/spring-jms-2.5.xsd
		   http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">
	<!-- 将ActiveMQ内嵌到应用程序中 
	<amq:broker useJmx="false" persistent="true">
		<amq:transportConnectors>
			<amq:transportConnector uri="tcp://localhost:61616"/>
		</amq:transportConnectors>
	</amq:broker>
	-->
	<!-- 定义消息队列 -->	
	<amq:queue id="indexChannel" physicalName="SOLR.INDEX"/>
	<!-- 定义连接工厂 -->
	<amq:connectionFactory id="connectionFactory" brokerURL="tcp://localhost:61616"/>
	<!-- 
	<bean id="jmsFactory" class="org.apache.activemq.pool.PooledConnectionFactory" destroy-method="stop">  
		<property name="connectionFactory" ref="connectionFactory"/>  
		<property name="maxConnections" value="100"/>  
    </bean>
     -->  
	<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
    	<property name="connectionFactory" ref="connectionFactory"/>
  	</bean>
	<!-- 消息发送者 -->
	<bean id="messageSender" class="org.chen.jms.MessageSender">
  		<property name="jmsTemplate">
      		<ref bean="jmsTemplate"/>
    	</property>
    	<property name="destination">
      		<ref bean="indexChannel"/>
    	</property>
  	</bean>
	<!-- 定义消息监听器 -->
	<bean id="indexListener" class="org.chen.jms.IndexListener"/>
	<jms:listener-container concurrency="10" > <!-- concurrency指定最多可并发开启10个监听器 -->
		<jms:listener id="listener" destination="SOLR.INDEX" ref="indexListener" />
	</jms:listener-container>
</beans>
消息生产者代码如下:
public class MessageSender {
	private JmsTemplate jmsTemplate;
	private Destination destination;
	
	public void send(Object message){
		jmsTemplate.setDeliveryMode(DeliveryMode.PERSISTENT);
		jmsTemplate.convertAndSend(destination,message);
	}
	
	public JmsTemplate getJmsTemplate() {
		return jmsTemplate;
	}
	public void setJmsTemplate(JmsTemplate jmsTemplate) {
		this.jmsTemplate = jmsTemplate;
	}
	public Destination getDestination() {
		return destination;
	}
	public void setDestination(Destination destination) {
		this.destination = destination;
	}
}
消息监听器代码如下:
public class IndexListener implements MessageListener {

	@Override
	public void onMessage(Message msg) {
		ObjectMessage objMsg=(ObjectMessage) msg;
		try {
			Serializable obj=objMsg.getObject();
			System.out.println(obj);
			//TODO 处理独立出去的业务逻辑
		} catch (JMSException e) {
			e.printStackTrace();
		}
	}

}


30、Spring与J2EE:JMS应用全解析 本文深入解析了Spring框架对J2EE中JMS的全面支持,涵盖了从基础的同步消息收发到高级的事务管理和异步消息处理。通过示例代码和配置详细介绍了如何集成和使用ActiveMQ,以及如何利用Spring的JmsTemplate、事务管理器和FactoryBean等组件构建灵活高效的消息驱动应用。同时,还对比了不同JMS功能的使用场景,并提供了开发流程、注意事项及未来展望,帮助开发者全面掌握Spring与JMS的开发实践。 阅读详情

相关推荐

18、Java消息驱动与Spring JMS应用详解

本文详细介绍了Java消息驱动Bean(MDB)在处理贷款请求、消息转换与路由中的应用场景,并深入解析了Spring框架对JMS的支持。内容涵盖消息驱动Bean的核心优势、Spring的JmsTemplate与消息监听器容器的使用、连接工厂与JMS目的地的配置、常用方法详解,以及Spring JMS命名空间的简化配置。通过示例代码和架构图,帮助开发者构建高效、稳定的消息驱动应用程序。

jump7的博客 72

Failed to start bean 'org.springframework.kafka.config.internalKafkaListenerEndpointRegistry'

java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegat...

weixin_40805072的博客 3万+

21、Spring JMS 与企业应用部署考量

本文深入探讨了 Spring JMS 的相关属性及其在企业应用部署中的关键考量因素。内容涵盖了 Spring JMS 的核心配置属性、性能与可扩展性测试方法、硬件需求评估、长期可靠性测试以及 IP 组播的应用与挑战。通过详细的实操建议和测试流程,帮助开发者更好地优化 JMS 应用,确保系统的高效、稳定运行。

jump7的博客 81

基于jms使用ActiveMQ实现异步日志功能.消息持久到oracle 10g 数据库

package askyaya.entity;import java.io.Serializable;import org.apache.commons.lang.builder.EqualsBuilder;import org.apache.commons.lang.builder.HashCodeBuilder;import org.apache.commons.lang.builder.Re...

Java-Jinguo 236

LEC/FORMAL --- PARTIII debug

lec(logic equivalence checking)又叫formal check,是对ic design的综合,PR前后的设计进行逻辑对比检查的工具/手段,保证综合不改变rtl原始的logic function。目前用的较多的就是C家的formal工具。接下来介绍一下lec过程中遇到的问题以及debug手段。...

sinat_27691203的博客 7714

对LSTM中每个batch都初始化隐含层的理解

不知道有没有人和我有一样疑惑 在LSTM相关的代码中,为什么每个batch都会将隐藏层重新初始化, 这样不会把以前训练出来的参数丢掉吗?? 比如 代码来自GitHub 看了一些解释是h与c是状态,不是参数,每个batch中都需要初始化为0,LSTM 中的参数是W,b。 网络中训练的是参数,不是状态。 说真的。。。当时我没怎么看懂。。。 咨询了实验室的师兄后,我有了自己的理解 产生误解的主要原因是我对RNN和LSTM的结构理解不深入,我们通常看到RNN结构图基本都是这样的 ...

Chauncey_Wang的博客 5910

activemq使用

引入依赖 引入activemq <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-activemq</artifactId> </dependency> 引入activemq artemis (与 activemq 二选一) <dependency> <grou

rwzhang的博客 814

高功率半导体叠阵激光准直

摘要:研究针对高功率半导体激光器叠阵的光束整形问题,通过Zemax软件模拟5个巴条(间隔1.81mm)的LD阵列(总功率300W)。采用非序列模式建立模型,设置慢轴/快轴发散角分别为5°和19.5°,并配置包含19个发光点的巴条结构。通过S-TIH53材质的快轴准直镜(焦距0.6mm)和慢轴准直镜(焦距2.88mm)进行光束整形,有效降低了快慢轴发散角。仿真结果表明该方法能显著改善叠阵激光的光束质量,为高亮度光纤耦合提供了解决方案。

Zhaxibamao的博客 915

Java消息服务~@JmsListener集成

1、配置ActiveMQ连接工厂、JmsTemplate等 import javax.jms.ConnectionFactory; import org.apache.activemq.ActiveMQConnectionFactory; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.context.annotation.Bean; import org.springfr

小强快跑~~ 4345

Qlib+backtrader:2014.1.1-2023.9.20最新回测结果,可以实盘吗?

今年以来,在研究了qlib和backtrader的基础上,把二者结合起来进行了一个策略研究。简单说就是用qlib在200只股票的股票池中进行滚动训练与预测(walk forward),总体数据范围是2005到2023年,以20日间隔滚动训练和预测,最终得到2014.1.1-2023.9.20共10年测试期的收益率预测结果。将预测结果代入backtrader进行回测,得到如下回测结果。

qtbgo的博客 1783

Python气象数据处理实战:用PyCINRAD轻松绘制雷达PPI图像(附避坑指南)

本文详细介绍了如何使用Python库PyCINRAD处理中国CINRAD系列天气雷达的基数据,并绘制专业的PPI图像。内容涵盖从环境配置、数据读取、核心绘图到高级定制与批量处理的完整流程,并针对安装依赖、中文乱码、数据范围等常见问题提供了实用的避坑指南,帮助气象工作者高效完成雷达数据可视化。

dog123的博客 223

spring-jms/DefaultMessageListenerContainer配置

DefaultMessageListenerContainer配置 一个DefaultMessageListenerContainer可以开启多个 (concurrent)AsyncMessageListenerInvoker并发 收消息两种模式: 模式一:递增监听线程并调度,监听线程轮询监听消息 模式二:动态调度监听线程(递增/递减),有限轮询+重新触发调度

Black Shadow 1万+

高空抛物监控系统:基于YOLOv8的轨迹追踪与可视化系统

本文详细介绍了一种基于YOLOv8深度学习模型的高空抛物监控系统,该系统能够实时检测并追踪高层建筑抛掷物的运动轨迹。文章包含完整的系统设计思路、算法实现细节、数据集构建方法以及基于PyQt5的可视化界面开发过程。我们提供了完整的Python实现代码,并讨论了系统的性能优化策略和实际部署考量。此外,我们还推荐了几个公开可用的高空抛物数据集,并详细分析了系统的应用前景和技术挑战。

YOLO 446

使用Spring Boot和注释支持配置Spring JMS应用程序

1.简介 在以前的文章中,我们学习了如何使用Spring JMS配置项目。 如果查看有关使用Spring JMS进行消息传递的文章介绍 ,您会注意到它是使用XML配置的。 本文将利用Spring 4.1版本中引入的改进 ,并仅使用Java config来配置JMS项目。 在这个示例中,我们还将看到使用Spring Boot配置项目是多么容易。 在开始之前,请注意,与往常一样,您可以看...

最佳 Java 编程 343

量子化学仿真软件:VASP_(9).磁性材料计算

在量子化学仿真软件 VASP 中,磁性材料的计算是一个复杂但重要的过程。通过正确设置磁性状态、分析磁性性质、优化计算参数以及研究磁性相变和磁动力学,可以更准确地描述和预测磁性材料的性能。希望本节的内容能够为研究磁性材料的科研人员提供有用的参考和指导。

kkchenjj的博客 1375

GitHub 国内加速完全指南(最新):镜像、代理与优化技巧

在国内使用 GitHub 时,经常遇到 clone 慢、打开仓库卡、GitHub Actions 不稳定 等问题。下面是整理好的 GitHub 国内镜像和加速方法大全,高效使用 GitHub。

moton2017的博客 1万+

JMS在Spring框架下的应用

    上传通讯薄操作,除了向客户端返回好友列表外,还需要将上传的通讯簿存储到数据库中,以便进行后期数据分析。一开始,我的设计是将通讯薄全部插到数据库后再返回客户端,但经过测试,用户访问速度过慢,于是我就采用多线程处理的方式,单开一个线程,在后台慢慢插去吧,不影响客户端访问速度就行。我对多线程也不是太熟悉,代码设计是参考硕硕的,由于时间紧,也没多思考,虽然用得心里有点不踏实。     今早刚...

205

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

用Spring快速开发jms应用(JBOSS服务器)

异步进程通信是面向服务架构(SOA)一个重要的组成部分,因为企业里很多系统通信,特别是与外部组织间的通信,实质上都是异步的。Java消息服务(JMS)是用于编写使用异步消息传递的JEE应用程序的API。传统的使用JMS API进行消息传递的实现包括多个步骤,例如JNDI查询队列连接工厂和Queue资源,在实际发送和接收消息前创建一个JMS会话。    Spring框架则简化了使用JEE组件(包括J

gotohbu的专栏 527

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Java中的异步消息处理:从JMS到Spring AMQP的应用

在Java中实现异步消息处理,JMS和Spring AMQP都是不错的选择。Spring AMQP是Spring框架的一个项目,为AMQP(Advanced Message Queuing Protocol)提供支持,主要用于集成RabbitMQ等消息代理。今天我们来探讨Java中的异步消息处理,重点介绍JMS和Spring AMQP的应用。JMS是Java平台中用于消息传递的API,提供了消息的创建、发送、接收和读取的标准方法。它能够有效解耦系统,提高系统的伸缩性和可靠性。

微赚淘客系统开发者博客 624

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

用Spring快速开发jms应用

异步进程通信是面向服务架构(SOA)一个重要的组成部分,因为企业里很多系统通信,特别是与外部组织间的通信,实质上都是异步的。Java消息服务(JMS)是用于编写使用异步消息传递的JEE应用程序的API。传统的使用JMS API进行消息传递的实现包括多个步骤,例如JNDI查询队列连接工厂和Queue资源,在实际发送和接收消息前创建一个JMS会话。    Spring框架则简化了使用JEE组件(

wangjian223344的专栏 1631

spring_使用Spring Boot和注释支持配置Spring JMS应用程序

spring1.简介 在以前的文章中,我们学习了如何使用Spring JMS配置项目。 如果查看有关使用Spring JMS进行消息传递的文章介绍,您会注意到它是使用XML配置的。 本文将利用Spring 4.1版本中引入的 改进,并仅使用Java config来配置JMS项目。 在这个例子中,我们还将看到使用Spring Boot配置项目是多么容易。 在开始之前,只需注意一下,您可以照常查...

cunfen8879的博客 172
上一篇: ACL权限处理
下一篇: lucene高亮显示
JavaMan_chen
博客等级 码龄19年 329粉丝 82原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值