SpringBoot配置ActiveMQ
时间:2022-07-24
本文章向大家介绍SpringBoot配置ActiveMQ,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
一些常量定义:
/**
* @Auther: ZhangShenao
* @Date: 2019/1/6 16:26
* @Description:
*/
public interface Constants {
String BROKER_URL = "nio://localhost:61617";
String QUEUE_NAME = "Test-Queue";
String TOPIC_NAME = "Test-Topic";
String CONSUMER_CLIENT_ID = "Client-1";
String DURABLE_SUBSCRIBER_NAME = "Durable-Subscriber";
int MESSAGE_NUM = 5;
String JMS_TOPIC_TEMPLATE = "jmsTopicTemplate";
String JMS_QUEUE_TEMPLATE = "jmsQueueTemplate";
String QUEUE_LISTENER_CONTAINER_FACTORY = "queueListenerContainerFactory";
String TOPIC_LISTENER_CONTAINER_FACTORY = "topicListenerContainerFactory";
interface QueueNames{
String REQUEST_QUEUE = "Reply-Queue";
String RESPONSE_QUEUE = "Response-Queue";
}
}
ActiveMQ核心配置类:
/**
* @Auther: ZhangShenao
* @Date: 2019/1/8 18:20
* @Description:ActiveMQ核心配置类
*/
@Configuration
@EnableJms
@ComponentScan
public class ActiveMQConfiguration {
@ConditionalOnClass(ActiveMQConnectionFactory.class)
@Bean
public ConnectionFactory activeMQConnectionFactory() {
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory();
connectionFactory.setBrokerURL(Constants.BROKER_URL);
connectionFactory.setUserName("admin");
connectionFactory.setPassword("admin");
return connectionFactory;
}
@Bean
public ConnectionFactory connectionFactory(){
CachingConnectionFactory factory = new CachingConnectionFactory();
factory.setTargetConnectionFactory(activeMQConnectionFactory());
factory.setSessionCacheSize(100);
return factory;
}
@Bean
public MessageConverter jacksonJmsMessageConverter() {
MappingJackson2MessageConverter converter = new MappingJackson2MessageConverter();
converter.setTargetType(MessageType.TEXT);
converter.setTypeIdPropertyName("_type");
return converter;
}
@Bean(Constants.JMS_TOPIC_TEMPLATE)
public JmsTemplate jmsTopicTemplate() {
JmsTemplate jmsTemplate = new JmsTemplate();
jmsTemplate.setConnectionFactory(connectionFactory());
jmsTemplate.setPubSubDomain(true);
jmsTemplate.setMessageConverter(jacksonJmsMessageConverter());
return jmsTemplate;
}
@Bean(Constants.JMS_QUEUE_TEMPLATE)
public JmsTemplate jmsQueueTemplate() {
JmsTemplate jmsTemplate = new JmsTemplate();
jmsTemplate.setConnectionFactory(connectionFactory());
jmsTemplate.setPubSubDomain(false);
jmsTemplate.setMessageConverter(jacksonJmsMessageConverter());
return jmsTemplate;
}
@ConditionalOnClass(ActiveMQConnectionFactory.class)
@Bean(Constants.QUEUE_LISTENER_CONTAINER_FACTORY)
public JmsListenerContainerFactory<?> queueListenerContainerFactory(DefaultJmsListenerContainerFactoryConfigurer configurer) {
DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();
configurer.configure(factory, connectionFactory());
factory.setMessageConverter(jacksonJmsMessageConverter());
factory.setPubSubDomain(false);
return factory;
}
@ConditionalOnClass(ActiveMQConnectionFactory.class)
@Bean(Constants.TOPIC_LISTENER_CONTAINER_FACTORY)
public JmsListenerContainerFactory<?> topicListenerContainerFactory(DefaultJmsListenerContainerFactoryConfigurer configurer) {
DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();
configurer.configure(factory, connectionFactory());
factory.setMessageConverter(jacksonJmsMessageConverter());
factory.setPubSubDomain(true);
return factory;
}
}
- 运算符优先级
- 腾讯云联手腾讯安全玄武实验室,提供「应用克隆」漏洞免费检测服务
- 1.注册或登录页面设计:UILabel,UIButton,UITextField
- 和为S的两个数字VS和为s的连续正数序列
- HANDLE
- Kafka的基本概念与安装指南(单机+集群同步)
- 科技专栏:001 机器人为美国带来大量失业人口,我们怎么办?
- HBase跨地区机房的压测小程序——从开发到打包部署(图文版)
- 从零新建小程序
- 计算机网络基础回顾
- iOS应用开发:什么是ARC
- 通过两个小栗子来说说Java的sleep、wait、notify、notifyAll的用法
- 用HPS游戏充值是一种什么样的体验?
- Bootstrap源码分析之dropdown
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释