Spring+ActiveMQ学习总结

一起学习ActiveMQ (二) spring boot与ActiveMQ结合 一起学习ActiveMQ (二) spring boot与ActiveMQ结合 前面一章介绍了ActiveMQ 的安装及相关api,但是通常情况下我们很少直接使用原生api进行开发,同时spring jms对ActiveMQ 进行了一系列的封装,再加上spring boot的快捷开发,使得对ActiveMQ的使用更加简单高效。下面一起来看下如何利用spring boot连接ActiveMQ。... 阅读详情

Spring+ActiveMQ学习总结

实验要求:
1、 1个apache作为负载均衡器、3个以上的tomcat作为web应用服务器
2、 分别采用session sticky和session replication进行配置实验
3、 要求能实现3个及以上tomcat应用服务器节点的负载均衡,并支持节点热拔插
4、编写Web应用程序模拟用户注册时候发送通知邮件的应用场景,用ActiveMQ的Topic方式实现异步的邮件发送和接收消息。

好久没有写博客了,懒懒的。
那么我那么懒的人,为什么要写这篇呢???因为记仇!!!
中间件课程设计花了我起码3-4天的时间了!
这里写图片描述

本学期中间件的课程设计我采用的是软负载均衡:apache+tomcat负载均衡实验+ActiveMQ实现JMS监听队列。

由于我的项目ActiveMQ的注解不生效,所以我尝试了很多种方法!开始本次记仇…..

1.1 maven依赖

<dependency>
            <groupId>org.apache.xbean</groupId>
            <artifactId>xbean-spring</artifactId>
            <version>4.5</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jms</artifactId>
            <version>4.1.4.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.apache.activemq</groupId>
            <artifactId>activemq-all</artifactId>
            <version>5.9.1</version>
        </dependency>
        <dependency>
            <groupId>javax.jms</groupId>
            <artifactId>javax.jms-api</artifactId>
            <version>2.0.1</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>javax.mail</groupId>
            <artifactId>javax.mail-api</artifactId>
            <version>1.4.7</version>
        </dependency>
        <dependency>
            <groupId>com.sun.mail</groupId>
            <artifactId>javax.mail</artifactId>
            <version>1.4.7</version>
        </dependency>

1.2 命名空间引入

<?xml version="1.0" encoding="UTF-8"?>
<!-- 查找最新的schemaLocation 访问 http://www.springframework.org/schema/ -->
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:amq="http://activemq.apache.org/schema/core"
    xmlns:jms="http://www.springframework.org/schema/jms"
    xsi:schemaLocation="http://www.springframework.org/schema/beans   
        http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
        http://www.springframework.org/schema/context   
        http://www.springframework.org/schema/context/spring-context-3.2.xsd
        http://www.springframework.org/schema/jms
        http://www.springframework.org/schema/jms/spring-jms-4.1.xsd
        http://activemq.apache.org/schema/core
        http://activemq.apache.org/schema/core/activemq-core-5.8.0.xsd">

1.3配置applicationContext.xml

<!-- jms配置 -->
    <!-- ActiveMQ 真正产生Connection的ConnectionFactory,由对应的 JMS服务厂商提供 -->
    <bean id="activeMqConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
        <property name="brokerURL" value="tcp://localhost:61616" />
        <property name="userName" value="admin"></property>
        <property name="password" value="admin"></property>
    </bean>

    <!-- 配置spring 管理 connectionFactory -->
    <bean id="connectionFactory"
        class="org.springframework.jms.connection.CachingConnectionFactory">
        <constructor-arg ref="activeMqConnectionFactory" />
        <property name="sessionCacheSize" value="100" />
    </bean>  

    <!-- 消息处理器 -->
    <bean id="jmsMessageConverter"
        class="org.springframework.jms.support.converter.SimpleMessageConverter" />
    <!-- ====Producer side start==== -->
    <!-- 定义JmsTemplate的Queue类型 -->
    <bean id="jmsQueueTemplate" class="org.springframework.jms.core.JmsTemplate">
        <constructor-arg ref="connectionFactory" />
        <!-- 非pub/sub模型(发布/订阅),即队列模式 -->
        <property name="pubSubDomain" value="false" />
        <property name="messageConverter" ref="jmsMessageConverter"></property>
    </bean>
    <!-- 定义JmsTemplate的Topic类型 -->
    <bean id="jmsTopicTemplate" class="org.springframework.jms.core.JmsTemplate">
        <constructor-arg ref="connectionFactory" />
        <!-- pub/sub模型(发布/订阅) -->
        <property name="pubSubDomain" value="true" />
        <property name="messageConverter" ref="jmsMessageConverter"></property>
    </bean>
    <jms:listener-container destination-type="queue"
        container-type="default" connection-factory="connectionFactory"
        acknowledge="auto" concurrency="5-10">
        <jms:listener destination="testqueue" ref="consumerServiceImpl" />
    </jms:listener-container>

1.4 生产者

@Resource
@Component("producer")
public class Producer {
    @Resource(name = "jmsQueueTemplate")
    private JmsTemplate jmsQueueTemplate;// 通过@Qualifier修饰符来注入对应的bean

    public String[] args;
     public void sendMessage(Destination destination, final String msg){ 
         jmsQueueTemplate.convertAndSend(destination, msg);  
         System.out.println(msg);
     }  
}

1.5 消费者

@Component("consumerServiceImpl")
public  class Consumer  implements MessageListener {
    public String[] args;

    public void onMessage(Message message) {    
        TextMessage textMsg = (TextMessage) message;  

        try {
            String msg = textMsg .getText();
            System.out.println("55555"+msg);    
            //调用发送邮件方法
            SendEmail.main(args, msg);
        } catch (Exception e) {

        }
    }
}

1.6 实现
登录项目后新增老师,新增成功后则发送邮件新增成功!
这里写图片描述

这里写图片描述

项目码云地址:https://gitee.com/srain13/keshe/tree/activemq/

下面点名表扬几篇博客。

ActiveMQ学习总结(10)——ActiveMQ采用Spring注解方式发送和监听
https://blog.youkuaiyun.com/u012562943/article/details/52993462

Spring整合JMS(二)——三种消息监听器
http://elim.iteye.com/blog/1893676

基于SysML/UML的系统建模:需求追踪与状态机仿真实践 系统建模是软件工程中连接需求与实现的关键环节,其核心在于通过结构化语言描述系统结构、行为与约束。SysML作为UML的扩展,提供了需求图、参数图等系统工程专用视图,可有效解决传统UML在系统边界表达和需求追踪上的不足。借助用例建模、活动图和状态机图,可以实现从用户需求到内部模块再到生命周期状态的可追溯链路,提升设计的可靠性与可评审性。结合实际案例,展示如何建立需求追踪矩阵、识别干系人与参与者、设计类图与状态机,并完成仿真验证,适用于系统设计、课程设计与工程实践中的复杂系统建模。 阅读详情

相关推荐

Spring和ActiveMQ整合的完整实例

Spring和ActiveMQ整合的完整实例

ActiveMQ与spring整合注解方式

之前有用过activeMq这种消息中间件,但是通过配置文件的方式,现在spring都越来越推行注解,所以写一个小demo来记录一下。 1.什么是ActiveMQ

莫失莫忘的博客 2978

【博客汇总】UV打印机博客汇总

UV平板机博客汇总

Print World的专栏 1743

Spring+ActiveMQ,实现负载均衡以及实现JMS监听

实验要求:  1、 1个apache作为负载均衡器、3个以上的tomcat作为web应用服务器  2、 分别采用session sticky和session replication进行配置实验  3、 要求能实现3个及以上tomcat应用服务器节点的负载均衡,并支持节点热拔插  4、模拟用户注册时候发送通知邮件的应用场景,用ActiveMQ的Topic方式实现异步的邮件发送和接收消息。 突然爱上写...

shenshen0702的博客 987

QKD(量子密钥分发)

量子密钥分发(Quantum Key Distribution,QKD)是一种基于量子力学原理的安全通信协议,它允许两个用户通过不安全的通信信道创建并共享一个安全的密钥。这个密钥随后可以用于加密和解密信息,确保通信的机密性。QKD的核心原理是量子不可克隆定理和量子测量的不确定性。

qq_40844444的博客 2896

AMCL代码详解(六)amcl中的重采样

每次都从w1左边的竖线开始转,显而易见,转到w1的概率为0-w1之间的随机数,转到w2的概率为w1到w1+w2之间的随机数,转到w3的概率为w1+w2到w1+w2+w3之间的随机数,后面的依次类推。当某个粒子的权值较大的时候,产生的随机数落在相应区间的概率就会增大,从而实现了对权值大粒子的多次复制,权值小的粒子的剔除。可以看出,在整个重采样的过程中,粒子进行了两次种情况的刷新,一种是随机生成的新的粒子,一种是对原来的粒子的复制。得到的值越大,说明粒子的权重越小,当前粒子的可信度比较小,需要重采样粒子。

YiYeZhiNian的博客 1579

Java ActiveMQ 讲解(二)Spring ActiveMQ整合+注解消息监听

对于ActiveMQ消息的发送,原声的api操作繁琐,而且如果不进行二次封装,打开关闭会话以及各种创建操作也是够够的了。那么,Spring提供了一个很方便的去收发消息的框架,spring jms。整合Spring后,代码不仅变得非常优雅,而且易用性和扩展性更好。 废话不多说,直接开搞。 1. maven依赖 <!-- activemq --> ...

weixin_30386713的博客 328

新手也能搞定的ANPC三电平逆变器Simulink仿真:从SPWM调制到开关损耗优化

本文详细介绍了如何在Simulink中搭建ANPC三电平逆变器仿真模型,从SPWM调制基础到开关损耗优化技巧。通过分层设计思路和实用代码示例,帮助新手快速掌握ANPC拓扑的核心功能,包括中点平衡控制和性能指标分析,为电力电子系统设计提供实践指导。

weixin_30335575的博客 408

springMVC+activemq整合注解方式

前言:用了一次mq,由于xml配置+注解的方式出现类加载问题并且对spring类加载机制不是很熟悉,索性就改成注解方式来解决问题。 配置过程中,搜索了好久,各种配置失败,这里给出总结经验,勉励一下自己吧。 1.xml监听配置方式及测试程序,请参阅 http://www.cnblogs.com/leiOOlei/p/5075402.html 2.activemq注解监听配

no_can_no_bb_的博客 757

极空间NAS零基础部署Wiki.js:Docker+PostgreSQL全流程避坑指南

本文提供了一份在极空间NAS上从零部署Wiki.js私有知识库的详细指南。通过Docker容器化技术,结合PostgreSQL数据库,手把手讲解环境准备、核心组件配置、性能优化及安全加固等全流程,并特别针对极空间平台特性提供了避坑要点,帮助用户打造安全、高效、自主可控的知识管理系统。

3a9bq4r8t2y的博客 486

cadence virtuoso 激励信号源

vpulse,vpwl,vsin,vsource信号源介绍

努力学习的IC小白 3万+

《Pro Spring》学习笔记之Spring+ActiveMQ实现Queue通信 转载

《Pro Spring》学习笔记之Spring+ActiveMQ实现Queue通信(点对点)     

wenzi_li的专栏 144

Plecs电力电子仿真专业教程-第一季 第一节 Plecs简介

Plces 电力电子仿真专业教程系列依托专业的电力电子仿真软件Plecs对各种电力电子常用的拓扑及实际设计的方案进行系统及仿真与软件代码仿真实践。通过对各种电路仿真原理的讲解及专业C语言代码程序的编写,提升学员的系统设计能力,软件编程能力与理论分析能力。

3645

学习activemq,在spring中activemq的配置信息

提供者: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jms="http://www.springframe...

Piratesa的博客 248

基于simulink的自动紧急制动系统(AEB)的功能验证

本文手把手指导使用Simulink构建自动紧急制动系统(AEB)模型,通过五个关键步骤完成功能验证:1)搭建车辆动力学模型;2)设计雷达传感器模型;3)开发基于碰撞时间(TTC)的决策逻辑;4)设计标准化测试场景;5)进行仿真分析。重点讲解了AEB的多级触发机制(预警、辅助制动、自动制动)和核心指标验证方法,包括制动时机判断、减速度性能等。通过典型场景仿真,展示了AEB如何在2.5秒TTC触发预警,1.2秒TTC启动自动制动,有效避免碰撞。文章还展望了行人AEB、传感器融合等进阶研究方向,为自动驾驶安全系统

amy_mhd的博客 267

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

ActiveMQ学习总结(3)——spring整合ActiveMQ

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33972649的博客 230

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

【ActiveMQ】Spring Jms集成ActiveMQ学习记录

Spring Jms集成ActiveMQ学习记录。 引入依赖包 无论生产者还是消费者均引入这些包: <properties> <spring.version>3.0.5.RELEASE</spring.version> </properties> <dependencies> <dependency...

dongjizheng9270的博客 104

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

activemq学习——Spring整合之Queue

导航页:https://blog.youkuaiyun.com/baokx/article/details/100745165 修改pom文件: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www....

baokx的专栏 423

ActiveMQ、Spring整合学习

ActiveMQ 下载地址:下载:http://activemq.apache.org/download.html win7系统启动出错, 解决方法:控制面板-管理工具-服务-找到Internet Connection Sharing服务,双击打开,选择停止。 示例 1、ActiveMQ jar org.apache.activemq activemq-all 5.4

Java 之路 1690
上一篇: activeMQ启动一闪而过(闪退)
下一篇: Dubbo+Zookeeper+Spring+Struts+Hibernate(ssh)整合应用实现分布式
Srain13
博客等级 码龄10年 6粉丝 49原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值