spring boot框架学习13-spring boot整合active mq方法2
- 学习笔录-spring boot
- 时间:2017-12-10 10:17
- 3662人已阅读
🔔🔔🔔好消息!好消息!🔔🔔🔔
有需要的朋友👉:联系凯哥
主要从以下几个方面讲解:
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