其实免费网站java源码分享在线观看的问题并不复杂,但是又很多的朋友都不太了解java企业网站源码,因此呢,今天小编就来为大家分享免费网站java源码分享在线观看的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!
今天呢,想和大家一起分享一下如何把rabbitmq应用到我们的Spring工程项目中。
RabbitmqServerInstall&Config
使用Rabbitmq需要我们安装rabbitmq服务器,服务器下载地址<http://www.rabbitmq.com/download.html>。笔者使用的是MacOSstandalone3.5.4版本,下载完成之后,解压文件即可。
进入sbin目录,后台启动rabbitmqserver
./rabbitmq-server–detached\n
使用ps-A|greprabbit可以查看到当前运行的rabbitmq进程。
然后,使用rabbitmq-plugin命令使能web管理:
./rabbitmq-pluginsenablerabbitmq_management\n
然后,我们就可以使用web界面管理我们的RabbitmqServer,网址为:
http://localhost:15672/\n
用户名和密码默认为guest/guest,用户登录之后可以根据需要选择新增用户名和密码,并设置管理权限。
SpringRabbitmq使用实例
MessageProducer
生产者的Rabbitmq.xml配置,这里我们使用rabbit标签来配置rabbitmq客户端。
<?xmlversion=&34;encoding=&34;?>\n<beansxmlns=&34;\nxmlns:xsi=&34;\nxmlns:rabbit=&34;\nxsi:schemaLocation=&34;>\n\n<!–配置connection-factory,指定连接rabbitserver参数–>\n<rabbit:connection-factoryid=&34;username=&34;password=&34;\nhost=&34;\nport=&34;\nvirtual-host=&34;/>\n\n<!–通过指定下面的admin信息,当前producer中的exchange和queue会在rabbitmq服务器上自动生成–>\n<rabbit:adminconnection-factory=&34;/>\n\n<!–定义queue–>\n<rabbit:queueid=&34;name=&34;durable=&34;auto-delete=&34;exclusive=&34;/>\n\n<!–定义directexchange,绑定com.mj.testqueue–>\n<rabbit:direct-exchangename=&34;durable=&34;auto-delete=&34;>\n<rabbit:bindings>\n<rabbit:bindingqueue=&34;key=&34;></rabbit:binding>\n</rabbit:bindings>\n</rabbit:direct-exchange>\n\n<!–定义rabbittemplate用于数据的接收和发送–>\n<rabbit:templateid=&34;connection-factory=&34;exchange=&34;/>\n</beans>\n
ApplicationContext.xml配置
<?xmlversion=&34;encoding=&34;?>\n<beansxmlns=&34;xmlns:xsi=&34;\nxmlns:context=&34;\nxmlns:tx=&34;\nxmlns:aop=&34;\nxmlns:jdbc=&34;\nxsi:schemaLocation=&34;>\n<!–使能AOP–>\n<aop:aspectj-autoproxy/>\n<!–自动装载bean使能–>\n<context:component-scanbase-package=&34;/>\n<context:annotation-config/>\n\n<!–声明一个事物管理–>\n<beanid=&34;class=&34;>\n<propertyname=&34;ref=&34;></property>\n</bean>\n\n<!–启用annotation的事务支持–>\n<tx:annotation-driventransaction-manager=&34;proxy-target-class=&34;/>\n\n<importresource=&34;/>\n\n<beanid=&34;class=&34;>\n<propertyname=&34;value=&34;/>\n<propertyname=&34;value=&34;/>\n<propertyname=&34;value=&34;/>\n<propertyname=&34;value=&34;/>\n</bean>\n</beans>\n
Producer发送数据Java代码
@Service\npublicclassMessageSender{\n\n@Resource(name=&34;)\nAmqpTemplateamqpTemplate;\n\npublicvoidsendMessage(Objectmessage){\namqpTemplate.convertAndSend(&34;,message);\n}\n}\n
MessageConsumer
Rabbitmq.xml配置
Rabbitmq接收端需要配置Connection-Factory实例,监听的队列,以及Listener-container。同时,我们需要创建监听队列的javabean。这里我们使用的是springrabbitmq提供的异步MessageListener接口,consumer的业务逻辑在onMessage中实现。
<?xmlversion=&34;encoding=&34;?>\n<beansxmlns=&34;\nxmlns:xsi=&34;\nxmlns:rabbit=&34;\nxsi:schemaLocation=&34;>\n\n\n<rabbit:connection-factoryid=&34;username=&34;password=&34;\nhost=&34;\nport=&34;\nvirtual-host=&34;/>\n\n<rabbit:queueid=&34;name=&34;durable=&34;auto-delete=&34;exclusive=&34;/>\n\n\n<beanid=&34;class=&34;></bean>\n\n<rabbit:listener-containerconnection-factory=&34;>\n<rabbit:listenerqueues=&34;ref=&34;/>\n</rabbit:listener-container>\n\n</beans>\n
ApplicationContext.xml和producer的一致
Consumer侦听mq消息代码
publicclassMessageReceiverimplementsMessageListener{\n\npublicvoidonMessage(Messagemessage){\nSystem.out.println(message);\n}\n\npublicstaticvoidmain(String[]args){\nApplicationContextapplicationContext=newClassPathXmlApplicationContext(&34;);\n}\n}\n
测试
启动MessageReceiver的main函数,运行producer的单元测试,会在MessageReceiver的concole端看到接收都到的数据。同时登陆rabbitmq客户端可以看到我们配置的Exchange和queue信息。
\npublicclassMessageSenderTest{\n\nprivateApplicationContextcontext=null;\n\n@Before\npublicvoidsetUp()throwsException{\ncontext=newClassPathXmlApplicationContext(&34;);\n}\n\n@Test\npublicvoidshould_send_a_amq_message()throwsException{\nMessageSendermessageSender=(MessageSender)context.getBean(&34;);\nmessageSender.sendMessage(&34;);\n}\n}\n
Conclusion
本文和大家分享了一个Springrabbitmq代码实例,文中给出了完整的xml配置和java代码,希望能够给大家带来一些帮助。
END,本文到此结束,如果可以帮助到大家,还望关注本站哦!