简单记录下springboot+jms+activemq

1. 安装ActiveMQ

到Apache官方网站下载最新的ActiveMQ的安装包,并解压到本地目录下后运行

2. pom.xml引入  springboot配置文件中填写相关配置

3.创建生产者

@Component

public class JmsProducer {
    private static final Logger LOG = LoggerFactory.getLogger(JmsProducer.class);

    @Autowired    private JmsMessagingTemplate jmsMessagingTemplate;

    /**     * 一对一发送     *     * @param queueName     * @param message     */    public void send(String queueName, String message) {        jmsMessagingTemplate.convertAndSend(queueName, message);    }

    /**     * 一对多发送     *     * @param topicName     * @param message     */    public void multicast(String topicName, String message) {        LOG.debug("发送广播消息到{},内容是:\n{}", topicName, message);        Destination destination = new ActiveMQTopic(topicName);        jmsMessagingTemplate.convertAndSend(destination, message);    }}

4.创建消费者
@Component@Profile({"test", "prod"})@Slf4jpublic class PushConsumer {

    @Autowired    PushServiceImpl pushService;

    /**     * 聊天消息推送     * @param message 消息体     */    @JmsListener(destination = MqConfig.PUSH_NAME, containerFactory = "jmsListenerContainerTopic")    public void push(String message){        log.debug("从消息队列{}中收到消息:{}",MqConfig.PUSH_NAME,message);        try {            MessageModel messageModel = JSONArray.parseObject(message,MessageModel.class);            pushService.push(messageModel.getEnumDeviceType(),                    messageModel.getTitle(),                    messageModel.getMessage(),                    messageModel.getAliasList(),                    messageModel.getParm());        }catch (Exception e){            log.error("推送失败");            throw  new BusinessException("推送失败",e);        }    }}

5.mqConfig
@Configurationpublic class MqConfig {

    public final static String PUSH_NAME = "topic.push.name";    //需要给topic定义独立的JmsListenerContainer

    @Bean    public JmsListenerContainerFactory<?> jmsListenerContainerTopic(ConnectionFactory activeMQConnectionFactory) {        DefaultJmsListenerContainerFactory bean = new DefaultJmsListenerContainerFactory();        bean.setPubSubDomain(true);        bean.setConnectionFactory(activeMQConnectionFactory);        return bean;    }

    // queue模式的ListenerContainer    @Bean    public JmsListenerContainerFactory<?> jmsListenerContainerQueue(ConnectionFactory activeMQConnectionFactory) {        DefaultJmsListenerContainerFactory bean = new DefaultJmsListenerContainerFactory();        bean.setConnectionFactory(activeMQConnectionFactory);        return bean;    }}6.编写测试类


原文地址:https://www.cnblogs.com/xiaokangk/p/11663194.html

时间: 2024-11-10 13:28:19

简单记录下springboot+jms+activemq的相关文章

简单记录下HTTPS中的SSL

大概思路 大概思路是混合加密的方式,即对称加密方式混合非对称加密方式. 非对称加密会更加安全,功能也更强大,但他复杂而且速度慢. 对称加密速度快,但要保证这个公共密钥的正确性和真实性. 所以两者结合,在确定公共密钥的时候,采用非对称加密的方式来传递这个公共密钥,然后后面的交流的信息都用这个公共密钥来进行加密. 那又要怎么确定服务器的身份呢?如果是一个假的服务器,直接给了你一个假的公钥,那么一开始就错了啊. 这就要用到证书了,证书是这样的原理的,大概描述下: 1. 服务器把自己的公钥登陆到数字证书

简单记录下安卓环境的搭建和第一个安卓程序的破解

来自<Android软件安全与逆向分析> 一.配置安卓环境 1.安装JDK http://www.oracle.com/technetwork/java/javase/downloads/index.html DwonLoads->下载JDK 我下载的版本是  jdk-8u91-windows-x64.exe 一路安装好了之后,添加用户变量 JAVA_HOME 值为安装目录 I:\Android\jdk 并将I:\Android\jdk\bin添加到PATH中 CMD-> 输入ja

简单记录下spark环境搭建时的几个小问题

折腾了好几天,终于可以在CenOS下用eclipse写spark程序了 当前环境是CentOS6.5,jdk7,scala2.10.4,spark0.9.1 前期因为对linux不熟悉的原因花了不少时间查阅命令.折腾了不少时间,终于把jdk8,scala2.11.0环境变量配置好了.在此环境下可以正常编译scala程序,但是在spark下运行sbt/sbt assembly时报了错误:rt.jar is broken.上google查了不少资料,大概是因为jdk8和jdk7之间的差异造成的,所以

简单记录下@RequestBody

内容参考自博客:https://blog.csdn.net/ff906317011/article/details/78552426 这个标注是用来注释controller中的请求方法中的参数的,那么什么时候要用这个注解呢? 主要看请求的方式和请求header的编码方式: 1.请求方式为get/post时,根据request header Content-Type的值来判断: 如果Content-Type是application/x-www-form-urlencoded的话,可以选择用这个注解

简单记录下mysql计划OA开心乐园源码下载任务创建

有时候我们在OA开心乐园源码下载联系方式:QQ:2747044651 网址http://zhengtuwl.com 程序中需要定时进行一项数据操作,这时我们可以使用线程来满足需求.另外在mysql中有一个功能叫做event,可以定时执行指定数据操作. 二.创建过程如下: CREATE EVENT IF NOT EXISTS sysYipsEventON SCHEDULE EVERY 30 SECONDON COMPLETION PRESERVEDO CALL sys_tips_distribut

u-boot命令行调试LCD简单记录

一般来说,调试uboot最好的方式是使用openjtag,因为uboot说到底就是一段裸机程序,只不过比较复杂.但是受实际环境限制,实际工作中使用较多的调试技巧主要有两种:打印和直接在命令行测试,打印比较常见也比较简单,直接使用printf即可,这里就以最近这段时间调试uboot下面lcd为例,简单说说命令行调试. 平台: am335x,u-boot 2010.09,linux 3.10 问题: 由于此版本u-boot比较旧,没有整套framebuffer子系统框架,所以采取的是移植好官方裸机驱

简单记录个a标签点不上的bug

官网改版时碰到的问题.简单记录下: [ 问题 ] 官网index页面移动端测试时,发现底部页脚的a标签无论如何点不动. [ Debug 过程 ] 1.先是在pc端用浏览器模拟手机看了下,问题重现: 2.然后看了下"规则"和"计算后"面板(用的是FireFox,习惯了--分别对应Chrome的styles和computed),a标签本身的样式似乎是没问题的,周围也没啥问题-- 3.丢到chrome里,问题依然重现,继续懵逼-- 4.无意间关掉了移动端模拟,居然好了卧槽

spring boot整合JMS(ActiveMQ实现)

一.安装ActiveMQ 具体的安装步骤,请参考我的另一篇博文: http://blog.csdn.net/liuchuanhong1/article/details/52057711 二.新建spring boot工程,并加入JMS(ActiveMQ)依赖 三.工程结构 pom依赖如下: [html] view plain copy <?xml version="1.0" encoding="UTF-8"?> <project xmlns=&qu

Web项目容器集成ActiveMQ &amp; SpringBoot整合ActiveMQ

集成tomcat就是随项目启动而启动tomcat,最简单的方法就是监听器监听容器创建之后以Broker的方式启动ActiveMQ. 1.web项目中Broker启动的方式进行集成 在这里采用Listener监听ServletContext创建和销毁进行Broker的启动和销毁. 0.需要的jar包: 1.listener实现ServletContextListener接口 package cn.qlq.listener; import javax.servlet.ServletContextEv