ActiveMQ除了可以作为独立进程单独部署在服务器上之外,也可以很小巧的内嵌在程序中启动
一下介绍三种启动方式:
楼主maven目录结构:
一:直接启动通过broker
package com.test.mq.broker;
import org.apache.activemq.broker.BrokerService;
//嵌入式broker启动
//Broker:相当于一个activeMq服务器实例
public class brokertest {
public static void main(String[] args) throws Exception {
BrokerService bs=new BrokerService();
// 启用broker的JMX监控功能
bs.setUseJmx(true);
// 设置broker名字
bs.setBrokerName("MyBroker");
// 是否使用持久化
bs.setPersistent(false);
bs.addConnector("tcp://localhost:61616");
bs.start();
}
}
对于生产者,消费者代码,在这里就不再写了
二:通过配置文件启动,文件位置,上面的图中都有
配置文件:
useJms=true
persistent=false
brokerName=FactoryBroker
代码:
package com.test.mq.brokerProperties;
import java.net.URI;
import org.apache.activemq.broker.BrokerFactory;
import org.apache.activemq.broker.BrokerService;
//嵌入式broker启动
//Broker:相当于一个activeMq服务器实例
public class brokertest {
public static void main(String[] args) throws Exception {
String uri = "properties:broker.properties";
BrokerService bs = BrokerFactory.createBroker(new URI(uri));
bs.addConnector("tcp://localhost:61616");
bs.start();
}
}
三:结合spring的broker
applicationContext.xml配置:
<!--broker启动配置 -->
<bean id="broker" class="org.apache.activemq.broker.BrokerService" init-method="start"
destroy-method="stop">
<!--broker名称随便起-->
<property name="brokerName" value="SpringBroker"/>
<!--持久化策略-->
<property name="persistent" value="true"/>
<property name="transportConnectorURIs">
<list>
<value>tcp://localhost:61616</value>
</list>
</property>
</bean>
代码:
package com.test.mq.brokerSpring;
import java.net.URI;
import org.apache.activemq.broker.BrokerFactory;
import org.apache.activemq.broker.BrokerService;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
//嵌入式broker启动
//Broker:相当于一个activeMq服务器实例
public class brokertest {
public static void main(String[] args) throws Exception {
ApplicationContext ctx = new
ClassPathXmlApplicationContext("applicationContext.xml");
}
}
楼主发布的内容,自己都是亲自实践操作
一只行走的小笨猿!