第二个灵魂 发表于 2015-1-18 11:19:15

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.xml12345<dependency><groupId>org.apache.xbean</groupId><artifactId>xbean-spring</artifactId><version>3.16</version></dependency>
然后在Spring设置文件中到场以下代码:
12345<amq:brokerid="activeMQBroker"><amq:transportConnectors><amq:transportConnectoruri="${jms.broker.url}"/></amq:transportConnectors></amq:broker>
注重在Spring设置文件中还要到场Namespace的界说。
1234567891011<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.xml123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657<?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起个名字。
1234567891011<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:36

在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。

飘飘悠悠 发表于 2015-1-24 16:03:57

有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)

飘灵儿 发表于 2015-2-2 09:12:14

你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。

透明 发表于 2015-2-2 10:50:18

是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言

蒙在股里 发表于 2015-2-5 01:44:46

吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧

老尸 发表于 2015-2-11 00:44:00

是一种使网页(Web Page)产生生动活泼画面的语言

仓酷云 发表于 2015-2-13 08:45:38

让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。

第二个灵魂 发表于 2015-3-3 17:58:11

是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能

灵魂腐蚀 发表于 2015-3-11 11:57:02

Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。

冷月葬花魂 发表于 2015-3-18 10:08:09

是一种将安全性(Security)列为第一优先考虑的语言

愤怒的大鸟 发表于 2015-3-25 15:15:23

你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
页: [1]
查看完整版本: JAVA编程:ActiveMQ第三弹:在Spring中利用内置的Message Broker仓酷云