1、activeMQ与spring整合:
①依赖的jar包 和application.xml配置
<!-- broker 的绑定 -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.5</version>
</dependency>
<!-- activeMQ jms 的支持 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jms</artifactId>
<version>4.3.23.RELEASE</version>
</dependency>
<dependency> <!-- pool 池化包相关的支持 -->
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-pool</artifactId>
<version>5.15.9</version>
</dependency>
======================================================================================
<!-- 组件扫描 -->
<context:component-scan base-package="com.zixue"/>
<!-- activeMQ连接工厂-->
<bean id="connectionFactory" class="org.apache.activemq.pool.PooledConnectionFactory">
<property name="connectionFactory" >
<bean class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL" value="tcp://192.168.25.25:61616"/>
</bean>
</property>
<property name="maxConnections" value="100"/>
</bean>
<!-- 队列-->
<bean id="queue" class="org.apache.activemq.command.ActiveMQQueue">
<constructor-arg name="name" value="queue-name"/>
</bean>
<!-- topic-->
<bean id="topic" class="org.apache.activemq.command.ActiveMQTopic">
<constructor-arg name="name" value="topic-name"/>
</bean>
<!-- JMS模板 -->
<bean id="JmsTemplate" class="org.springframework.jms.core.JmsTemplate">
<constructor-arg name="connectionFactory" ref="connectionFactory"/>
<property name="defaultDestination" ref="queue"/>
<property name="messageConverter" >
<!-- Java 对象(POJOs)与 JSON 格式内容之间的转化 -->
<bean class="org.springframework.jms.support.converter.SimpleMessageConverter"/>
</property>
</bean>
<!-- 消息监听器 -->
<bean id="jmsListener" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="connectionFactory" ref="connectionFactory"/>
<property name="destination" ref="topic"/>
<!--实现 MyMessageListener-->
<property name="messageListener" ref="myMessageListener"/>
</bean>
②生产者和消费者代码实现
public class Product {
//生产者
@Autowired
private JmsTemplate JmsTemplate;
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
Product product = (Product) context.getBean("product");
product.JmsTemplate.send((session)->{
TextMessage message = session.createTextMessage("欢迎我的第一次到来。。。");
return message;
});
}
}
======================================================================================
public class Customer {
//消费者
@Autowired
private JmsTemplate JmsTemplate;
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
Customer customer = (Customer) context.getBean("customer");
String str = (String) customer.JmsTemplate.receiveAndConvert();
System.out.println("接受到"+str);
}
}
③监听器
public class MyMessageListener implements MessageListener {
@Override
public void onMessage(Message message) {
if (null != message && message instanceof TextMessage) {
TextMessage str = (TextMessage) message;
try {
System.out.println("接受到" + str.getText());
} catch (JMSException e) {
e.printStackTrace();
}
}
}
}
springBoot待续。。。。。