仓酷云

标题: JAVA编程:ActiveMQ第三弹:在Spring中利用内置的Message Broker仓酷云 [打印本页]

作者: 第二个灵魂    时间: 2015-1-18 11:19
标题: JAVA编程:ActiveMQ第三弹:在Spring中利用内置的Message Broker仓酷云
Java的桌面程序开发在java程序员里通常叫swing开发,主要用的swing包里的类开发的,也就是通常说的c/s架构开发在上个例子中我们演示了怎样利用SpringJMS来向ActiveMQ发送动静和吸收动静。可是这个例子必要先从把持台利用ActiveMQ供应的命令行功效启动一个MessageBroker,然后才干运转示例。这个MessageBroker就相称于一个server,不管是发送方仍是吸收方都能够毗连到这个Server举行动静的处置。在某些情形下,让MessageBroker和consumer启动在统一个JVM内里,通讯效力一定会高很多。
ActiveMQ供应了良多体例来创立内置的broker。这篇文章次要先容利用Spring及XBean来创立一个内置的broker。
起首必要在项目中引进xbean-spring依附项。
pom.xml
  1. 12345
复制代码
  1. <dependency><groupId>org.apache.xbean</groupId><artifactId>xbean-spring</artifactId><version>3.16</version></dependency>
复制代码
然后在Spring设置文件中到场以下代码:
  1. 12345
复制代码
  1. <amq:brokerid="activeMQBroker"><amq:transportConnectors><amq:transportConnectoruri="${jms.broker.url}"/></amq:transportConnectors></amq:broker>
复制代码
注重在Spring设置文件中还要到场Namespace的界说。
  1. 1234567891011
复制代码
  1. <beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:amq="http://activemq.apache.org/schema/core"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://activemq.apache.org/schema/corehttp://activemq.apache.org/schema/core/activemq-core-5.8.0.xsd">.........</beans>
复制代码
完全的Spring设置以下。
embedBroker.xml
  1. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
复制代码
  1. <?xmlversion="1.0"encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:amq="http://activemq.apache.org/schema/core"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://activemq.apache.org/schema/corehttp://activemq.apache.org/schema/core/activemq-core-5.8.0.xsd"><beanclass="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"><propertyname="location"><value>application.properties</value></property></bean><!--Activemqconnectionfactory--><beanid="amqConnectionFactory"class="org.apache.activemq.ActiveMQConnectionFactory"><!--<propertyname="brokerURL"value="${jms.broker.url}"/>--><constructor-argindex="0"value="${jms.broker.url}"/><propertyname="useAsyncSend"value="true"/></bean><amq:brokerid="activeMQBroker"><amq:transportConnectors><amq:transportConnectoruri="${jms.broker.url}"/></amq:transportConnectors></amq:broker><!--ConnectionFactoryDefinition--><beanid="connectionFactory"class="org.springframework.jms.connection.CachingConnectionFactory"><constructor-argref="amqConnectionFactory"/></bean><!--DefaultDestinationQueueDefinition--><beanid="defaultDestination"class="org.apache.activemq.command.ActiveMQQueue"><constructor-argindex="0"value="${jms.queue.name}"/></bean><!--JmsTemplateDefinition--><beanid="jmsTemplate"class="org.springframework.jms.core.JmsTemplate"><propertyname="connectionFactory"ref="connectionFactory"/><propertyname="defaultDestination"ref="defaultDestination"/></bean><!--MessageSenderDefinition--><beanid="messageSender"class="huangbowen.net.jms.MessageSender"><constructor-argindex="0"ref="jmsTemplate"/></bean><!--MessageReceiverDefinition--><beanid="messageReceiver"class="huangbowen.net.jms.MessageReceiver"></bean><beanclass="org.springframework.jms.listener.SimpleMessageListenerContainer"><propertyname="connectionFactory"ref="connectionFactory"/><propertyname="destinationName"value="${jms.queue.name}"/><propertyname="messageListener"ref="messageReceiver"/></bean></beans>
复制代码
在示例项目中我新加了一个Main办法来举行测试。能够运转EmbedBrokerApp中的Main办法来举行测试。



假如客户端和broker在不异的JVM历程中,客户端毗连时可使用brokerurl为“vm://localhost:61616”,历程外毗连则必要利用”tcp://localhost:61616”。假如有多个broker的话能够给每一个broker起个名字。
  1. 1234567891011
复制代码
  1. <amq:brokerbrokerName="broker1"><amq:transportConnectors><amq:transportConnectoruri="tcp://localhost:61616"/></amq:transportConnectors></amq:broker><amq:brokerbrokerName="broker2"><amq:transportConnectors><amq:transportConnectoruri="tcp://localhost:61617"/></amq:transportConnectors></amq:broker>
复制代码
客户端毗连时分能够间接利用broker称号毗连,好比利用”vm://broker1”来利用第一个broker。
本章中的完全源码可从完全代码可从https://github.com/huangbowen521/SpringJMSSample下载。

自己的整个学习思路完全被老师的讲课思路所牵制,这样几节课听下来,恐怕自己的见解都应该是书里的知识点了,根本谈不上自身发现问题,分析问题,和解决问题能力的切实提高。
作者: 深爱那片海    时间: 2015-1-20 20:13
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
作者: 飘飘悠悠    时间: 2015-1-24 16:03
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
作者: 飘灵儿    时间: 2015-2-2 09:12
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
作者: 透明    时间: 2015-2-2 10:50
是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言
作者: 蒙在股里    时间: 2015-2-5 01:44
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
作者: 老尸    时间: 2015-2-11 00:44
是一种使网页(Web Page)产生生动活泼画面的语言
作者: 仓酷云    时间: 2015-2-13 08:45
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
作者: 第二个灵魂    时间: 2015-3-3 17:58
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
作者: 灵魂腐蚀    时间: 2015-3-11 11:57
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
作者: 冷月葬花魂    时间: 2015-3-18 10:08
是一种将安全性(Security)列为第一优先考虑的语言
作者: 愤怒的大鸟    时间: 2015-3-25 15:15
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2