SpringBoot整合activemq

在maven项目pom.xml中增加相应的依赖文件;

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-activemq</artifactId>
</dependency>

修改application.yml配置文件

server:
  port: 80
spring:
  messages:
    basename: i18n/Messages,i18n/Pages
  jms:
    pub-sub-domain: false   # 配置消息的类型,如果是true则表示为topic消息,如果为false表示Queue消息
  activemq:
    user: hello    # 连接用户名
    password: hello   # 连接密码
    broker-url: tcp://activemq-server:61616 # 消息组件的连接主机信息

 定义一个消息的消费者,消费者主要是进行一个监听控制,在springboot里直接使用注解进行监听;

package hello.world.microboot.consumer;
import org.springframework.jms.annotation.JmsListener; 
import org.springframework.stereotype.Service; 
@Service
public class MessageConsumerService {

     @JmsListener(destination="activemq.msg.queue")
     public void receiveMessage(String text) { //         
            System.out.println(" ***      *** " + text); }
}

随后创建一个配置程序类,定义activemq的消息发送地址,

package hello.world.microboot.config;

import javax.jms.Queue;

import org.apache.activemq.command.ActiveMQQueue;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jms.annotation.EnableJms;

@Configuration
@EnableJms
public class ActiveMQConfig {
	@Bean
	public Queue queue() {
		return new ActiveMQQueue("activemq.msg.queue") ;
	}
}

   

建立消息发送者服务接口

package hello.world.microboot.producer;
public interface IMessageProducerService {
     public void sendMessage(String msg) ;
}

实现接口

package hello.world.microboot.producer.impl;

import javax.annotation.Resource;
import javax.jms.Queue;

import org.springframework.jms.core.JmsMessagingTemplate;
import org.springframework.stereotype.Service;

import rfk.sona.microboot.producer.IMessageProducerService;
@Service
public class MessageProducerServiceImpl implements IMessageProducerService {
	@Resource
	private JmsMessagingTemplate jmsMessagingTemplate;
	@Resource
	private Queue queue;
	@Override
	public void sendMessage(String msg) {
		this.jmsMessagingTemplate.convertAndSend(this.queue, msg);
	}

}

编写测试类观察消息的处理

package hello.world.microboot.test;

import javax.annotation.Resource;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;

import cn.mldn.microboot.StartSpringBootMain;
import cn.mldn.microboot.producer.IMessageProducerService;

@SpringBootTest(classes = StartSpringBootMain.class)
@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
public class TestActiveMQ {
	@Resource
	private IMessageProducerService messageProducer;
	@Test
	public void testSend() throws Exception {
		for (int x = 0; x < 100; x++) {
			this.messageProducer.sendMessage("sona - " + x);
		}
	}
}

 github:  https://github.com/sona0402/springboot-activemq-java.git

猜你喜欢

转载自dan326714.iteye.com/blog/2395073