Spring+ActiveMQ配置
来源:互联网 发布:淘宝真刷论坛 编辑:程序博客网 时间:2024/05/29 18:14
依赖jar包:
1、XML配置
2.类ProducerServiceImpl .java
}
二、接收端
1、XML配置
2、消息监听器ReceiverListener.java
}
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-spring</artifactId>
<version>5.13.2</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jms</artifactId>
<version>3.2.2.RELEASE</version>
</dependency>
一、发送端1、XML配置
<bean id="producerService" class="com.vispractice.vplog.activemq.ProducerServiceImpl" />
<!-- ActiveMQ 连接工厂 -->
<!-- 真正可以产生Connection的ConnectionFactory,由对应的 JMS服务厂商提供-->
<!-- 如果连接网络:tcp://ip:61616;未连接网络:tcp://localhost:61616 以及用户名,密码-->
<bean id="targetConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL" value="${mq.brokerURL}"/>
<property name="trustAllPackages" value="true"/>
</bean>
<!-- Spring Caching连接工厂
Spring用于管理真正的ConnectionFactory的ConnectionFactory
<bean id="connectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory">
<property name="targetConnectionFactory" ref="amqConnectionFactory"></property>
<property name="sessionCacheSize" value="100" />
</bean>
-->
<!-- Spring用于管理真正的ConnectionFactory的ConnectionFactory -->
<bean id="connectionFactory" class="org.springframework.jms.connection.SingleConnectionFactory">
<property name="targetConnectionFactory" ref="targetConnectionFactory"/>
</bean>
<!-- Spring JmsTemplate 的消息生产者 start-->
<!-- Spring提供的JMS工具类,它可以进行消息发送、接收等 -->
<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory" ref="connectionFactory"/>
</bean>
<!--这个是队列目的地,点对点的-->
<bean id="queueDestination" class="org.apache.activemq.command.ActiveMQQueue">
<constructor-arg>
<value>vp-log-queue</value>
</constructor-arg>
</bean> 2.类ProducerServiceImpl .java
@Component
public class ProducerServiceImpl implements ProducerService {
private JmsTemplate jmsTemplate;
public void sendMessage(Destination destination, final ActiveMQObjMsgBean jmsObject) {
System.out.println("---------------生产者发送消息-----------------");
jmsTemplate.send(destination, new MessageCreator() {
public Message createMessage(Session session) throws JMSException {
return session.createObjectMessage(jmsObject);
}
});
}
public JmsTemplate getJmsTemplate() {
return jmsTemplate;
}
@Resource
public void setJmsTemplate(JmsTemplate jmsTemplate) {
this.jmsTemplate = jmsTemplate;
}
二、接收端
1、XML配置
<!-- ActiveMQ 连接工厂 -->
<!-- 真正可以产生Connection的ConnectionFactory,由对应的 JMS服务厂商提供-->
<!-- 如果连接网络:tcp://ip:61616;未连接网络:tcp://localhost:61616 以及用户名,密码-->
<bean id="targetConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL" value="${mq.brokerURL}"/>
<property name="trustAllPackages" value="true"/>
</bean>
<!-- Spring Caching连接工厂 Spring用于管理真正的ConnectionFactory的ConnectionFactory 有缓存功能
<bean id="connectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory">
<property name="targetConnectionFactory" ref="amqConnectionFactory"></property>
<property name="sessionCacheSize" value="100" />
</bean>
-->
<!-- Spring用于管理真正的ConnectionFactory的ConnectionFactory -->
<bean id="connectionFactory" class="org.springframework.jms.connection.SingleConnectionFactory">
<property name="targetConnectionFactory" ref="targetConnectionFactory"/>
</bean>
<!-- Spring JmsTemplate 的消息生产者 start-->
<!-- Spring提供的JMS工具类,它可以进行消息发送、接收等 -->
<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory" ref="connectionFactory"/>
</bean>
<!--这个是队列目的地,点对点的-->
<bean id="queueDestination" class="org.apache.activemq.command.ActiveMQQueue">
<constructor-arg>
<value>vp-log-queue</value>
</constructor-arg>
</bean>
<!-- 消息监听器 -->
<bean id="receiverListener" class="com.vispractice.vplog.activemq.ReceiverListener"/>
<bean id="jmsContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="connectionFactory" ref="connectionFactory" />
<property name="destination" ref="queueDestination" />
<property name="messageListener" ref="receiverListener" />
</bean> 2、消息监听器ReceiverListener.java
public class ReceiverListener implements MessageListener {
@Resource(name = "logServiceImpl")
private LogService logService;
/**
* 现在只使用到ObjectMessage,其他的消息类型备用
*/
public void onMessage(Message msg) {
try {
if (msg instanceof TextMessage) {
TextMessage message = (TextMessage) msg;
System.out.println("------Received TextMessage------");
System.out.println(message.getText());
} else if (msg instanceof MapMessage) {
MapMessage message = (MapMessage) msg;
System.out.println("------Received MapMessage------");
System.out.println(message.getString("sysName"));
System.out.println(message.getString("sysFlag"));
System.out.println(message.getString("operation"));
System.out.println(message.getString("operator"));
System.out.println(message.getString("content"));
System.out.println(message.getString("parameter"));
System.out.println(message.getString("ip"));
System.out.println("------Received MapMessage for while------");
Enumeration enumer = message.getMapNames();
while (enumer.hasMoreElements()) {
Object obj = enumer.nextElement();
System.out.println(message.getObject(obj.toString()));
}
} else if (msg instanceof StreamMessage) {
StreamMessage message = (StreamMessage) msg;
System.out.println("------Received StreamMessage------");
System.out.println(message.readString());
System.out.println(message.readBoolean());
System.out.println(message.readLong());
} else if (msg instanceof ObjectMessage) {
System.out.println("------Received ObjectMessage------");
ObjectMessage message = (ObjectMessage) msg;
ActiveMQObjMsgBean jmsObject = (ActiveMQObjMsgBean) message.getObject();
String sysName = jmsObject.getSysName();
String sysFlag = jmsObject.getSysFlag();
String operation = jmsObject.getOperation();
String operator = jmsObject.getOperator();
String content = jmsObject.getContent();
String ip = jmsObject.getIp();
String[] ignoreParameters = jmsObject.getIgnoreParameters();
StringBuffer parameter = new StringBuffer();
Map<String, String[]> parameterMap = jmsObject.getParameterMap();
if (parameterMap != null) {
for (Entry<String, String[]> entry : parameterMap.entrySet()) {
String parameterName = entry.getKey();
if (!ArrayUtils.contains(ignoreParameters, parameterName)) {
String[] parameterValues = entry.getValue();
if (parameterValues != null) {
for (String parameterValue : parameterValues) {
parameter.append(parameterName + " = " + parameterValue + "\n");
}
}
}
}
}
Log log = new Log();
log.setSysName(sysName);
log.setSysFlag(sysFlag);
log.setOperation(operation);
log.setOperator(operator);
log.setContent(content);
log.setParameter(parameter.toString());
log.setIp(ip);
log.setCreateDate(new Date());
logService.save(log);
} else if (msg instanceof BytesMessage) {
System.out.println("------Received BytesMessage------");
BytesMessage message = (BytesMessage) msg;
byte[] byteContent = new byte[1024];
int length = -1;
StringBuffer content = new StringBuffer();
while ((length = message.readBytes(byteContent)) != -1) {
content.append(new String(byteContent, 0, length));
}
System.out.println(content.toString());
} else {
System.out.println(msg);
}
} catch (JMSException e) {
e.printStackTrace();
}
}
0 0
- activemq spring配置
- spring+activemq的配置
- jms+spring+activemq配置
- Spring集成ActiveMQ配置
- Spring集成ActiveMQ配置
- spring+activemq的配置
- activeMQ + Spring 配置
- Spring+ActiveMQ配置
- spring boot activeMQ 配置
- activeMQ与spring+springMVC+activeMQ配置
- activeMQ+spring+tomcat简单配置
- ActiveMQ 安装和spring 配置
- Spring+ActiveMQ+Mysql 配置JMS
- activemq与spring集成配置
- Spring+ActiveMQ+Mysql 配置JMS
- activemq + spring 配置内置vm
- Spring下ActiveMQ的xml配置
- activeMQ与spring结合 使用及配置
- git使用
- Qt之界面实现技巧
- LCS 问题
- Html5+Lufylegend.js游戏开发(一)引擎介绍及原理
- php多余的输出(返回值有回车键和空格)
- Spring+ActiveMQ配置
- /**一:初识Hadoop*/
- 基于级联形状回归框架的人脸特征点对齐方法总结
- MS SQLServer表数据生成Insert语句
- windows下配置redis
- arp欺骗进行流量截获-1
- glut 双缓冲动画 ---不用glutTimerFunc函数
- linux上的mysql插入中文报错问题解决
- arp欺骗进行流量截获-2