ActiveMQ实战篇之 java和spring xml创建Broker(一)
生活随笔
收集整理的這篇文章主要介紹了
ActiveMQ实战篇之 java和spring xml创建Broker(一)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
ActivityMQ創建broker是直接通過配置IOC注入的,所以了解如何用純JAVA代碼和spring xml 創建broker可以讓我們對AcitivtyMQ有一個更深入的了解
原本的配置
<broker xmlns="http://activemq.apache.org/schema/core" brokerName="myBroker" dataDirectory="${activemq.base}/data"><transportConnectors><transportConnector name="openwire"uri="tcp://localhost:61616" /></transportConnectors><plugins><simpleAuthenticationPlugin><users><authenticationUser username="admin"password="password"groups="admins,publishers,consumers"/><authenticationUser username="publisher"password="password"groups="publishers,consumers"/><authenticationUser username="consumer"password="password"groups="consumers"/><authenticationUser username="guest"password="password"groups="guests"/></users></simpleAuthenticationPlugin></plugins> </broker>用純JAVA實現
BrokerService broker =new BrokerService();broker.setBrokerName("myBroker");broker.setDataDirectory("data/");SimpleAuthenticationPlugin authentication = new SimpleAuthenticationPlugin();List<AuthenticationUser> users = new ArrayList<AuthenticationUser>();users.add(new AuthenticationUser("admin", "password", "admins,publishers,consumers"));users.add(new AuthenticationUser("publisher", "password", "publishers,consumers"));users.add(new AuthenticationUser("consumer", "password", "consumers"));users.add(new AuthenticationUser("guest", "password", "guests"));authentication.setUsers(users);broker.setPlugins(new BrokerPlugin[] { authentication });broker.addConnector("tcp://localhost:61616");broker.start();System.out.println();System.out.println("Press any key to stop the broker");System.out.println();System.in.read();可以實現同樣的功能,但是運行之后我們可以看到tcp端口61616開啟用于監聽,但是,和配置實現不同的是,純java實現并沒有開啟服務器,于是我們再模仿開啟服務器操作。
HTTPDiscoveryAgent httpDiscoveryAgent = new HTTPDiscoveryAgent(); httpDiscoveryAgent.setStartEmbeddRegistry(true); httpDiscoveryAgent.setRegistryURL("http://localhost:8161"); System.out.println(httpDiscoveryAgent.getRegistryURL()); httpDiscoveryAgent.start(); broker.addService(httpDiscoveryAgent);只需要在broker.start前面加上這段代碼即可,這段具體怎么做?需要進行源碼搜索源碼分析才能知道為什么這么做,當然有時候需要打斷點查看哪一段代碼有錯誤或者缺了什么包。
需要這些包
這樣jetty服務器能夠正常開啟了
用spring xml實現
在項目的根目錄上加上spring配置文件
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:amq="http://activemq.apache.org/schema/core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd"> <amq:broker brokerName="localhost" dataDirectory="${activemq.base}/data"><amq:transportConnectors><amq:transportConnector name="openwire"uri="tcp://localhost:61616" /></amq:transportConnectors><amq:plugins><amq:simpleAuthenticationPlugin><amq:users><amq:authenticationUser username="admin"password="password"groups="admins,publishers,consumers"/><amq:authenticationUser username="publisher"password="password"groups="publishers,consumers"/><amq:authenticationUser username="consumer"password="password"groups="consumers"/><amq:authenticationUser username="guest"password="password"groups="guests"/></amq:users></amq:simpleAuthenticationPlugin></amq:plugins></amq:broker> </beans>添加一個Factory,負責創建Broker
package com.tgb.activemq;import java.net.URI;import org.apache.activemq.broker.BrokerFactory; import org.apache.activemq.broker.BrokerService; import org.apache.activemq.xbean.XBeanBrokerFactory;public class Factory {public static void main(String[] args) throws Exception {System.setProperty("activemq.base", System.getProperty("user.dir"));String configUri = "xbean:Spring-simgle.xml";URI brokerUri = new URI(configUri);BrokerService broker = BrokerFactory.createBroker(brokerUri);broker.start();System.out.println();System.out.println("Press any key to stop the broker");System.out.println();System.in.read();} }xbean:前綴是告訴Factory使用 XBeanBrokerFactory創建Broker
總結
以上是生活随笔為你收集整理的ActiveMQ实战篇之 java和spring xml创建Broker(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ActiveMQ的自定义安全插件(十)
- 下一篇: iphone模拟器快捷键使用