spring boot框架学习13-spring boot整合active mq方法2

简介 主要从以下几个方面讲解:mybatis和springboot整合、redis(单机版)和springboot整合、redis(集群)和springboot整合、httpclient和springboot整合、rabbitMQ/activeMQ和springboot整合。接下来我们学习:springboot框架学习13-springboot整合activemq方法2请点击此处输入图片描述spring

🔔🔔好消息!好消息!🔔🔔

 如果您需要注册ChatGPT,想要升级ChatGPT4。凯哥可以代注册ChatGPT账号代升级ChatGPT4

有需要的朋友👉:微信号 kaigejava2022

主要从以下几个方面讲解:

mybatis和spring boot整合、redis(单机版)和spring boot整合、redis(集群)和spring boot整合、httpclient和spring boot整合、rabbitMQ/active MQ和spring boot整合。

接下来我们学习:spring boot框架学习13-spring boot整合active mq方法2

欢迎关注凯哥公众号:凯哥Java(kaigejava)

欢迎访问凯哥个人博客:www.kaigejava.com


spring boot整合active MQ方案二与上一篇《spring boot框架学习12-spring boot整合active mq方法1》区别在于:方法1中配置的MQ只能本项目生产者给本项目消费者使用。也就是自给自足的。但是在企业中,很多时候,你的生产者或者是消费者需要给其他项目或服务提供使用的。所以,就有了本篇,可以在不同的项目之间进行处理的。

active mq的下载、maven的jar依赖在此就不在赘述了。可参见上一篇。

一:MQ配置类


@Configuration

public class ActiveMQConfig {


@Bean

public ActiveMQConnectionFactory targetConnectionFactory(){

ActiveMQConnectionFactory targetConnectionFactory = new ActiveMQConnectionFactory();

targetConnectionFactory.setBrokerURL("tcp://127.0.0.1:61616");

targetConnectionFactory.setUserName("admin");

targetConnectionFactory.setPassword("admin");

return targetConnectionFactory;

}




@Bean

public SingleConnectionFactory connectionFactory( PooledConnectionFactory targetConnectionFactory){

SingleConnectionFactory connectionFactory = new SingleConnectionFactory();

connectionFactory.setTargetConnectionFactory(targetConnectionFactory);

return connectionFactory;

}

@Bean

public PooledConnectionFactory pooledConnectionFactory(ActiveMQConnectionFactory targetConnectionFactory){

PooledConnectionFactory pooledConnectionFactory = new PooledConnectionFactory();

pooledConnectionFactory.setConnectionFactory(targetConnectionFactory);

pooledConnectionFactory.setMaxConnections(10);

return pooledConnectionFactory;

}


@Bean

//public JmsTemplate jmsTemplate(SingleConnectionFactory connectionFactory){

public JmsTemplate jmsTemplate(SingleConnectionFactory connectionFactory){

JmsTemplate jmsTemplate = new JmsTemplate();

jmsTemplate.setConnectionFactory(connectionFactory);

return jmsTemplate;

}

}

说明:



如果有用户名密码的,可以在此设置用户名密码。


二:项目结构:



生产者、消费者

测试类:



生产者:



说明:



上图中1:消费者的名称

上图中2的->:使用的是jdk8的特性

完整代码:


@Component

public class PtpProducer {

   @Autowired

   private JmsTemplate jmsQueueTemplate;

   /**

    * 发送原始消息 Message

    */

   public void send(){

       jmsQueueTemplate.send("TestMQConsumerQuenue.java", session -> {

           return session.createTextMessage("我是原始消息");

       });

   }}

消费者:



@Component  

public class TestMQConsumerQuenue {  

//记录成功日志

   @JmsListener(destination = "testMQConsumerQuenue.test")  

   public void test(String text) {

    try {

    System.err.println("消费者准备开始睡觉了。2s");

Thread.sleep(2000);

System.err.println("消费者醒了收到的数据为:"+text);

} catch (InterruptedException e) {

e.printStackTrace();

}

   

   }  

   

   

}

本文来源:http://kaigejava.com/article/detail/97

TopTop