spring activemq小试牛刀

来源:互联网 发布:app开发用什么软件 编辑:程序博客网 时间:2024/04/30 10:20

理论不多说,直接上demo。

测试工程

pom.xml配置

<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/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>my-activemq-test</groupId><artifactId>my-activemq-test</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>my-activemq-test</name><url>http://maven.apache.org</url><properties><activemq_version>5.7.0</activemq_version><spring_version>3.1.0.RELEASE</spring_version><xbean_spring_version>4.1</xbean_spring_version></properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>${spring_version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>${spring_version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId><version>${spring_version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aspects</artifactId><version>${spring_version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>${spring_version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>${spring_version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context-support</artifactId><version>${spring_version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>${spring_version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>${spring_version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-orm</artifactId><version>${spring_version}</version></dependency>                 <dependency><groupId>org.apache.xbean</groupId><artifactId>xbean-spring</artifactId><version>${xbean_spring_version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jms</artifactId><version>${spring_version}</version></dependency><dependency><groupId>org.apache.activemq</groupId><artifactId>activemq-core</artifactId><version>${activemq_version}</version></dependency><dependency><groupId>org.apache.activemq</groupId><artifactId>activemq-pool</artifactId><version>${activemq_version}</version></dependency></dependencies><build><finalName>my-activemq-test</finalName></build></project>

applicationContext-test.xml

<?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:context="http://www.springframework.org/schema/context"xmlns:util="http://www.springframework.org/schema/util"xmlns:amq="http://activemq.apache.org/schema/core"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.1.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsdhttp://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core-5.7.0.xsd"><context:component-scan base-package="com.xyw" /><amq:connectionFactory id="amqConnectionFactory"brokerURL="tcp://172.16.1.212:61616" /><!-- CachingConnectionFactory Definition, sessionCacheSize property is the number of sessions to cache --><bean id="connectionFactory"class="org.springframework.jms.connection.CachingConnectionFactory"><constructor-arg ref="amqConnectionFactory" /><property name="exceptionListener" ref="jmsExceptionListener" /><property name="sessionCacheSize" value="100" /></bean><!-- JmsTemplate Definition --><bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate"><constructor-arg ref="connectionFactory" /></bean></beans>

JmsExceptionListener

package com.xyw.mq.exception;import javax.jms.ExceptionListener;import javax.jms.JMSException;import org.springframework.stereotype.Component;@Component("jmsExceptionListener")public class JmsExceptionListener implements ExceptionListener{public void onException( final JMSException e ){    System.err.println("jsm 系统异常"+e);    }}


test

package com.xyw.test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import org.springframework.jms.core.JmsTemplate;/** * Hello world! * */public class Test1 {    public static void main( String[] args )    {    ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext-test.xml");        JmsTemplate jmsTemplate = (JmsTemplate) applicationContext.getBean("jmsTemplate");        String message = "{\"firstName\":\"Brett\",\"lastName\":\"McLaughlin\",\"email\":\"aaaa\"}";        jmsTemplate.convertAndSend("com.xyw.test.queuetest", message);            }}

服务工程

pom.xml

<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">    <parent>        <artifactId>qfang-agent-online-parent</artifactId>        <groupId>com.qfang</groupId>        <version>1.0-SNAPSHOT</version>        <relativePath>../qfang-agent-online/pom.xml</relativePath>    </parent>    <modelVersion>4.0.0</modelVersion>    <groupId>com.xyw</groupId>    <artifactId>com.xyw.mq</artifactId>    <packaging>war</packaging>    <name>com.xyw.mq Maven Webapp</name>    <url>http://maven.apache.org</url>    <properties>        <activemq_version>5.7.0</activemq_version>        <spring_version>3.1.0.RELEASE</spring_version>        <xbean_spring_version>4.1</xbean_spring_version>        <jetty_version>6.1.26</jetty_version>    </properties>    <dependencies>        <dependency>            <groupId>junit</groupId>            <artifactId>junit</artifactId>            <version>3.8.1</version>            <scope>test</scope>        </dependency>        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-core</artifactId>            <version>${spring_version}</version>        </dependency>        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-context</artifactId>            <version>${spring_version}</version>        </dependency>        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-aop</artifactId>            <version>${spring_version}</version>        </dependency>        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-aspects</artifactId>            <version>${spring_version}</version>        </dependency>        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-beans</artifactId>            <version>${spring_version}</version>        </dependency>        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-test</artifactId>            <version>${spring_version}</version>        </dependency>        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-context-support</artifactId>            <version>${spring_version}</version>        </dependency>        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-webmvc</artifactId>            <version>${spring_version}</version>        </dependency>        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-web</artifactId>            <version>${spring_version}</version>        </dependency>        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-orm</artifactId>            <version>${spring_version}</version>        </dependency>        <dependency>            <groupId>org.apache.xbean</groupId>            <artifactId>xbean-spring</artifactId>            <version>${xbean_spring_version}</version>        </dependency>        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-jms</artifactId>            <version>${spring_version}</version>        </dependency>        <dependency>            <groupId>org.apache.activemq</groupId>            <artifactId>activemq-core</artifactId>            <version>${activemq_version}</version>        </dependency>        <dependency>            <groupId>org.apache.activemq</groupId>            <artifactId>activemq-pool</artifactId>            <version>${activemq_version}</version>        </dependency>    </dependencies>    <build>        <finalName>com.xyw.mq</finalName>        <plugins>            <plugin>                <groupId>org.mortbay.jetty</groupId>                <artifactId>maven-jetty-plugin</artifactId>                <version>${jetty_version}</version>                <configuration>                    <webDefaultXml>src/main/resources/webdefault.xml</webDefaultXml>                </configuration>            </plugin>        </plugins>    </build></project>


applicationContext-mqweb.xml


<?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:context="http://www.springframework.org/schema/context"       xmlns:jms="http://www.springframework.org/schema/jms"       xmlns:amq="http://activemq.apache.org/schema/core"       xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.0.xsdhttp://www.springframework.org/schema/jmshttp://www.springframework.org/schema/jms/spring-jms-3.0.xsdhttp://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core-5.7.0.xsd">       <context:component-scan base-package="com.xyw" />     <!-- ActiveMQ配置-->       <amq:connectionFactory id="connectionFactory" brokerURL="tcp://172.16.1.212:61616" />       <!-- listener container 定义了使用的队列 concurrency 定义了最大的并发量 -->       <jms:listener-container connection-factory="connectionFactory" concurrency="60">              <jms:listener destination="com.xyw.test.queuetest" ref="msgNotifyListenerBean" />       </jms:listener-container>       <jms:listener-container connection-factory="connectionFactory" concurrency="70">           <jms:listener destination="com.xyw.test.queuetest2" ref="msgListener2"></jms:listener>       </jms:listener-container></beans>

MsgNotifyListener

package com.xyw.mq.listener;import org.springframework.stereotype.Component;import javax.jms.JMSException;import javax.jms.Message;import javax.jms.MessageListener;import javax.jms.TextMessage;/** * Created by Administrator on 2016/1/4. */@Component("msgNotifyListenerBean")public class MsgNotifyListener implements MessageListener{    @Override    public void onMessage(Message message) {        if (message instanceof TextMessage){//文本信息            TextMessage textMsg = (TextMessage) message;            try {                System.out.println("MsgNotifyListener :"+textMsg.getText());            } catch (JMSException e) {                e.printStackTrace();            }        }    }}




1 0