`
jgsj
  • 浏览: 957247 次
文章分类
社区版块
存档分类
最新评论

spring interation学习-01发送jms消息

 
阅读更多

1.程序概述

使用spring-interation来实现将一个消息发送到activeMQ的消息队列中-需要安装activeMQ并在上面新建一个名称为queue.hello的队列

2.工程依赖添加

这里我们用的是maven管理,把spring相关的jar包搞到工程中来

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.crazycoder2010</groupId>
	<artifactId>casclient</artifactId>
	<packaging>war</packaging>
	<version>0.0.1-SNAPSHOT</version>
	<name>casclient Maven Webapp</name>
	<url>http://maven.apache.org</url>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<spring.integration.version>2.2.6.RELEASE</spring.integration.version>
		<activemq.version>5.7.0</activemq.version>
		<slf4j.version>1.7.5</slf4j.version>
		<spring.version>3.2.4.RELEASE</spring.version>
	</properties>

	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.11</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.apache.activemq</groupId>
			<artifactId>activemq-core</artifactId>
			<version>${activemq.version}</version>
			<exclusions>
				<exclusion>
					<artifactId>spring-context</artifactId>
					<groupId>org.springframework</groupId>
				</exclusion>
				<exclusion>
					<artifactId>slf4j-api</artifactId>
					<groupId>org.slf4j</groupId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-jms</artifactId>
			<version>${spring.version}</version>
			<scope>compile</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework.integration</groupId>
			<artifactId>spring-integration-core</artifactId>
			<version>${spring.integration.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework.integration</groupId>
			<artifactId>spring-integration-jms</artifactId>
			<version>${spring.integration.version}</version>
		</dependency>

		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-log4j12</artifactId>
			<version>${slf4j.version}</version>
		</dependency>
	</dependencies>
	<build>
		<finalName>casclient</finalName>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.1</version>
				<configuration>
					<source>1.7</source>
					<target>1.7</target>
					<encoding>UTF-8</encoding>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>

3.编写配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:int="http://www.springframework.org/schema/integration" xmlns:jms="http://www.springframework.org/schema/integration/jms"
	xmlns:stream="http://www.springframework.org/schema/integration/stream"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
                        http://www.springframework.org/schema/beans/spring-beans.xsd
                        http://www.springframework.org/schema/integration
                        http://www.springframework.org/schema/integration/spring-integration.xsd
                        http://www.springframework.org/schema/integration/jms
                        http://www.springframework.org/schema/integration/jms/spring-integration-jms.xsd
                        http://www.springframework.org/schema/integration/stream
                        http://www.springframework.org/schema/integration/stream/spring-integration-stream.xsd">
	<bean id="connectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
		<property name="brokerURL" value="tcp://localhost:61616" />
	</bean>

	<bean id="helloQueue" class="org.apache.activemq.command.ActiveMQQueue" autowire="constructor">
		<constructor-arg value="queue.hello" />
	</bean>
	
	<jms:channel id="jmsChannel" 
	    connection-factory="connectionFactory" 
	    queue="helloQueue" 
	    message-driven="false"> <!--一定注意将这个属性设置为false,否则报无订阅者的异常-->
	</jms:channel>
</beans>
4.编写发送测试程序

package com.haier.mdm.message;

import java.text.SimpleDateFormat;
import java.util.Date;

import javax.jms.Queue;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.integration.MessageChannel;
import org.springframework.integration.message.GenericMessage;

public class JmsTest {
	private ClassPathXmlApplicationContext applicationContext;
	@Before
	public void setUp(){
		applicationContext = new ClassPathXmlApplicationContext("/applicationContext-activeMQ.xml");
		applicationContext.start();
	}
	
	@Test
	public void testChannel(){
		MessageChannel messageChannel = applicationContext.getBean("jmsChannel", MessageChannel.class);
		GenericMessage<String> message = new GenericMessage<String>("使用message channel 发送"+generateTimeString());
		for(int i = 0; i<100; i ++)
		    messageChannel.send(message);
	}
	
	private String generateTimeString(){
		return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
	}
	
	@After
	public void tearDown(){
		applicationContext.stop();
	}
}


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics