配置监听器使项目启动时创建消费者

Posted xyhero

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了配置监听器使项目启动时创建消费者相关的知识,希望对你有一定的参考价值。

1、web.xml中注册监听器
<listener>
<listener-class>com.activemq.common.InitComponent</listener-class>
</listener>
2、InitComponent实现ServletContextListener,ApplicationContextAware接口,重写contextInitialized(ServletContextEvent servletContextEvent)方法。

特别注意,如果使用spring管理activemq,要修改配置与实际生产一致。这种方式会在项目启动时创建消费者,若项目做了负载均衡,多个Tomcat启动项目,会造成有多个消费者客户端。

@Component
public class InitComponent implements ServletContextListener,ApplicationContextAware{

private static ApplicationContext applicationContext;
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
InitComponent.applicationContext=applicationContext;
}
/**
* 程序运行时即初始化activemq消费组件
*/
public void contextInitialized(ServletContextEvent servletContextEvent) {

ConnectionFactory factory = new ActiveMQConnectionFactory("tcp://132.252.3.22:61616");
Connection connection;
Session session;
Destination destination;
MessageConsumer messageConsumer;
try {
connection = factory.createConnection();
connection.start();
session = connection.createSession(Boolean.FALSE, Session.AUTO_ACKNOWLEDGE);
destination = session.createTopic("ZHXJ_QUEUE"); // 创建连接的消息队列
messageConsumer = session.createConsumer(destination);// 创建消息消费者
messageConsumer.setMessageListener(new StaffMsgListener());
} catch (JMSException e) {
e.printStackTrace();
}
}
}

 































以上是关于配置监听器使项目启动时创建消费者的主要内容,如果未能解决你的问题,请参考以下文章

java web项目启动时自动加载自定义properties文件

在web项目启动时,使用监听器来执行某个方法

在web项目启动时,执行某个方法

spring项目中监听器作用-ContextLoaderListener(项目启动时,加载一些东西到缓存中)

Spring Web项目spring配置文件随服务器启动时自动加载

web项目启动时配置监听本地目录文件添加, 删除, 修改, 等操作