仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 507|回复: 11
打印 上一主题 下一主题

[学习教程] JAVA编程:ActiveMQ第三弹:在Spring中利用内置的Message Broker仓酷云

[复制链接]
第二个灵魂 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:19:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

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

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-15 15:00

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表