|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
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- <dependency><groupId>org.apache.xbean</groupId><artifactId>xbean-spring</artifactId><version>3.16</version></dependency>
复制代码 然后在Spring设置文件中到场以下代码:- <amq:brokerid="activeMQBroker"><amq:transportConnectors><amq:transportConnectoruri="${jms.broker.url}"/></amq:transportConnectors></amq:broker>
复制代码 注重在Spring设置文件中还要到场Namespace的界说。- <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- 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
复制代码- <?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起个名字。- <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下载。
自己的整个学习思路完全被老师的讲课思路所牵制,这样几节课听下来,恐怕自己的见解都应该是书里的知识点了,根本谈不上自身发现问题,分析问题,和解决问题能力的切实提高。 |
|