1.使用的是maven的结构,导入activeMQ的包

[html]  view plain​  ​copy

<dependency>

<groupId>org.apache.activemq</groupId>

<artifactId>activemq-core</artifactId>

<version>5.5.0</version>

</dependency>

2.创建“生产者”

①xml配置文件

[html]  view plain​  ​copy

  1. <!-- 创建工厂连接 -->
  2. <bean id="connectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
  3. <property name="brokerURL" value="tcp://localhost:61616" />
  4. </bean>
  5. <!-- activeMQ消息目标 队列 -->
  6. <bean id="rantzDestination" class="org.apache.activemq.command.ActiveMQQueue">
  7. <constructor-arg index="0" value="rantz.marketing.queue"></constructor-arg>
  8. </bean>
  9. <!-- activeMQ消息目标 主题-->
  10. <!-- <bean id="rantzDestination" class="org.apache.activemq.command.ActiveMQTopic">-->
  11. <!--     <constructor-arg index="0" value="rantz.marketing.queue"></constructor-arg>-->
  12. <!-- </bean>-->
  13. <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
  14. <property name="connectionFactory" ref="connectionFactory" />
  15. </bean>
  16. <bean id="marketingGateway" class="com.jms.service.RantzMarketingGatewayImpl">
  17. <property name="jmsTemplate" ref="jmsTemplate" />
  18. <property name="destination" ref="rantzDestination" />
  19. </bean>

②java代码

主类SpringMain

[java]  view plain​  ​copy

  1. public static void main(String[] args) {
  2. /*开始加载spring配置文件*/
  3. ApplicationContext context = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
  4. IRantzMarketingGateway rantzMarketingGateway= (RantzMarketingGatewayImpl) context.getBean("marketingGateway");
  5. rantzMarketingGateway.sendMotoristInfo();
  6. System.out.println("Start ...");
  7. }

消息发送类RantzMarketingGatewayImpl

[java]  view plain​  ​copy

  1. import javax.jms.Destination;
  2. import javax.jms.JMSException;
  3. import javax.jms.Message;
  4. import javax.jms.Session;
  5. import org.springframework.jms.core.JmsTemplate;
  6. import org.springframework.jms.core.MessageCreator;
  7. public class RantzMarketingGatewayImpl implements IRantzMarketingGateway {
  8. private JmsTemplate jmsTemplate;
  9. private Destination destination;
  10. public JmsTemplate getJmsTemplate() {
  11. return jmsTemplate;
  12. }
  13. public void setJmsTemplate(JmsTemplate jmsTemplate) {
  14. this.jmsTemplate = jmsTemplate;
  15. }
  16. public Destination getDestination() {
  17. return destination;
  18. }
  19. public void setDestination(Destination destination) {
  20. this.destination = destination;
  21. }
  22. public void sendMotoristInfo(){
  23. jmsTemplate.send(
  24. destination,
  25. new MessageCreator(){
  26. public Message createMessage(Session session) throws JMSException {
  27. return session.createTextMessage("这是一个测试");
  28. }
  29. }
  30. );
  31. }
  32. }

3.创建“消费者”

①xml配置文件

[html]  view plain​  ​copy

  1. <!-- 创建工厂连接 -->
  2. <bean id="connectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
  3. <property name="brokerURL" value="tcp://localhost:61616" />
  4. </bean>
  5. <!-- activeMQ消息目标 队列 -->
  6. <bean id="rantzDestination" class="org.apache.activemq.command.ActiveMQQueue">
  7. <constructor-arg index="0" value="rantz.marketing.queue"></constructor-arg>
  8. </bean>
  9. <!-- activeMQ消息目标 主题-->
  10. <!-- <bean id="rantzDestination" class="org.apache.activemq.command.ActiveMQTopic">-->
  11. <!--     <constructor-arg index="0" value="rantz.marketing.queue"></constructor-arg>-->
  12. <!-- </bean>-->
  13. <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
  14. <property name="connectionFactory" ref="connectionFactory" />
  15. <property name="defaultDestination" ref="rantzDestination" />
  16. </bean>
  17. <bean id="marketingGateway" class="com.huateng.jms.service.MarketingReceiverGatewayImpl">
  18. <property name="jmsTemplate" ref="jmsTemplate" />
  19. </bean>

②java代码

主类SpringMain

[java]  view plain​  ​copy

  1. public static void main(String[] args) {
  2. /*开始加载spring配置文件*/
  3. ApplicationContext context = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
  4. MarketingReceiverGatewayImpl rantzMarketingGateway= (MarketingReceiverGatewayImpl) context.getBean("marketingGateway");
  5. System.out.println("Receive Start ...");
  6. try {
  7. rantzMarketingGateway.receiveMotorist();
  8. } catch (Exception e) {
  9. e.printStackTrace();
  10. }
  11. }

消息发送类MarketingReceiverGatewayImpl

[java]  view plain​  ​copy

  1. import javax.jms.TextMessage;
  2. import org.springframework.jms.core.JmsTemplate;
  3. public class MarketingReceiverGatewayImpl {
  4. private JmsTemplate jmsTemplate;
  5. public JmsTemplate getJmsTemplate() {
  6. return jmsTemplate;
  7. }
  8. public void setJmsTemplate(JmsTemplate jmsTemplate) {
  9. this.jmsTemplate = jmsTemplate;
  10. }
  11. public MarketingReceiverGatewayImpl() {
  12. }
  13. public void receiveMotorist() throws Exception{
  14. TextMessage message  = (TextMessage)jmsTemplate.receive();
  15. System.out.println("reviced msg is:" + message.getText());
  16. }
  17. }

4.启动activeQM

在下载的activeQM包中的bin目录中,可以找到一个用于启动activeMQ的脚本。unix用户使用activemq;windows用户使用activemq.bat

5.先运行"生产者",再运行"消费者"

6.结果

Start ...

Receive Start ...

reviced msg is:这是一个测试

1.使用的是maven的结构,导入activeMQ的包

[html]  view plain​  ​copy

  1. <dependency>
  2. <groupId>org.apache.activemq</groupId>
  3. <artifactId>activemq-core</artifactId>
  4. <version>5.5.0</version>
  5. </dependency>

2.创建“生产者”

①xml配置文件

[html]  view plain​  ​copy

  1. <!-- 创建工厂连接 -->
  2. <bean id="connectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
  3. <property name="brokerURL" value="tcp://localhost:61616" />
  4. </bean>
  5. <!-- activeMQ消息目标 队列 -->
  6. <bean id="rantzDestination" class="org.apache.activemq.command.ActiveMQQueue">
  7. <constructor-arg index="0" value="rantz.marketing.queue"></constructor-arg>
  8. </bean>
  9. <!-- activeMQ消息目标 主题-->
  10. <!-- <bean id="rantzDestination" class="org.apache.activemq.command.ActiveMQTopic">-->
  11. <!--     <constructor-arg index="0" value="rantz.marketing.queue"></constructor-arg>-->
  12. <!-- </bean>-->
  13. <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
  14. <property name="connectionFactory" ref="connectionFactory" />
  15. </bean>
  16. <bean id="marketingGateway" class="com.jms.service.RantzMarketingGatewayImpl">
  17. <property name="jmsTemplate" ref="jmsTemplate" />
  18. <property name="destination" ref="rantzDestination" />
  19. </bean>

②java代码

主类SpringMain

[java]  view plain​  ​copy

  1. public static void main(String[] args) {
  2. /*开始加载spring配置文件*/
  3. ApplicationContext context = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
  4. IRantzMarketingGateway rantzMarketingGateway= (RantzMarketingGatewayImpl) context.getBean("marketingGateway");
  5. rantzMarketingGateway.sendMotoristInfo();
  6. System.out.println("Start ...");
  7. }

消息发送类RantzMarketingGatewayImpl

[java]  view plain​  ​copy

  1. import javax.jms.Destination;
  2. import javax.jms.JMSException;
  3. import javax.jms.Message;
  4. import javax.jms.Session;
  5. import org.springframework.jms.core.JmsTemplate;
  6. import org.springframework.jms.core.MessageCreator;
  7. public class RantzMarketingGatewayImpl implements IRantzMarketingGateway {
  8. private JmsTemplate jmsTemplate;
  9. private Destination destination;
  10. public JmsTemplate getJmsTemplate() {
  11. return jmsTemplate;
  12. }
  13. public void setJmsTemplate(JmsTemplate jmsTemplate) {
  14. this.jmsTemplate = jmsTemplate;
  15. }
  16. public Destination getDestination() {
  17. return destination;
  18. }
  19. public void setDestination(Destination destination) {
  20. this.destination = destination;
  21. }
  22. public void sendMotoristInfo(){
  23. jmsTemplate.send(
  24. destination,
  25. new MessageCreator(){
  26. public Message createMessage(Session session) throws JMSException {
  27. return session.createTextMessage("这是一个测试");
  28. }
  29. }
  30. );
  31. }
  32. }

3.创建“消费者”

①xml配置文件

[html]  view plain​  ​copy

  1. <!-- 创建工厂连接 -->
  2. <bean id="connectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
  3. <property name="brokerURL" value="tcp://localhost:61616" />
  4. </bean>
  5. <!-- activeMQ消息目标 队列 -->
  6. <bean id="rantzDestination" class="org.apache.activemq.command.ActiveMQQueue">
  7. <constructor-arg index="0" value="rantz.marketing.queue"></constructor-arg>
  8. </bean>
  9. <!-- activeMQ消息目标 主题-->
  10. <!-- <bean id="rantzDestination" class="org.apache.activemq.command.ActiveMQTopic">-->
  11. <!--     <constructor-arg index="0" value="rantz.marketing.queue"></constructor-arg>-->
  12. <!-- </bean>-->
  13. <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
  14. <property name="connectionFactory" ref="connectionFactory" />
  15. <property name="defaultDestination" ref="rantzDestination" />
  16. </bean>
  17. <bean id="marketingGateway" class="com.huateng.jms.service.MarketingReceiverGatewayImpl">
  18. <property name="jmsTemplate" ref="jmsTemplate" />
  19. </bean>

②java代码

主类SpringMain

[java]  view plain​  ​copy

  1. public static void main(String[] args) {
  2. /*开始加载spring配置文件*/
  3. ApplicationContext context = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
  4. MarketingReceiverGatewayImpl rantzMarketingGateway= (MarketingReceiverGatewayImpl) context.getBean("marketingGateway");
  5. System.out.println("Receive Start ...");
  6. try {
  7. rantzMarketingGateway.receiveMotorist();
  8. } catch (Exception e) {
  9. e.printStackTrace();
  10. }
  11. }

消息发送类MarketingReceiverGatewayImpl

[java]  view plain​  ​copy

  1. import javax.jms.TextMessage;
  2. import org.springframework.jms.core.JmsTemplate;
  3. public class MarketingReceiverGatewayImpl {
  4. private JmsTemplate jmsTemplate;
  5. public JmsTemplate getJmsTemplate() {
  6. return jmsTemplate;
  7. }
  8. public void setJmsTemplate(JmsTemplate jmsTemplate) {
  9. this.jmsTemplate = jmsTemplate;
  10. }
  11. public MarketingReceiverGatewayImpl() {
  12. }
  13. public void receiveMotorist() throws Exception{
  14. TextMessage message  = (TextMessage)jmsTemplate.receive();
  15. System.out.println("reviced msg is:" + message.getText());
  16. }
  17. }

4.启动activeQM

在下载的activeQM包中的bin目录中,可以找到一个用于启动activeMQ的脚本。unix用户使用activemq;windows用户使用activemq.bat

5.先运行"生产者",再运行"消费者"

6.结果

Start ...

Receive Start ...

reviced msg is:这是一个测试