1.坐标
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-activemq</artifactId>
<version>2.0.4.RELEASE</version>
</dependency>
2. 配置
spring.activemq.broker-url=tcp://localhost:61616
spring.activemq.in-memory=false
spring.activemq.pool.enabled=false
spring.activemq.user=admin
spring.activemq.password=admin
3.1 生产者
LoginProducer代码:
package com.czxy.mq.producer;
import org.apache.activemq.command.ActiveMQMapMessage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jms.core.JmsMessagingTemplate;
import org.springframework.stereotype.Service;
import javax.jms.Destination;
/**
* @author Fang
* @create 2018-10-20 18:19
* @desc 生产者
**/
@Service
public class LoginProducer {
@Autowired
private JmsMessagingTemplate template;
public void sendMessage(Destination destination, ActiveMQMapMessage message){
System.out.println("已成功生产消息");
template.convertAndSend(destination,message);
}
}
3.2 放入消息队列里:
UserService(业务逻辑层代码)
package com.czxy.service.impl;
import com.czxy.dao.TUserMapper;
import com.czxy.domain.TUser;
import com.czxy.mq.producer.LoginProducer;
import com.czxy.service.UserService;
import org.apache.activemq.command.ActiveMQMapMessage;
import org.apache.activemq.command.ActiveMQQueue;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.jms.JMSException;
/**
* @author Fang
* @create 2018-10-20 18:10
* @desc 业务层实现类
**/
@Service
@Transactional
public class UserServiceImpl implements UserService {
@Autowired
private LoginProducer loginProducer;
@Autowired
private TUserMapper tUserMapper;
/**
*@author Fang
*@create 2018/10/20 18:12
*@desc 一个简单的登录方法(不在乎业务 主要在意发送mq)
**/
public boolean doLogin(TUser user, String ip) {
try {
//放入消息队列
ActiveMQMapMessage message = new ActiveMQMapMessage();
message.setString("name","张三");
loginProducer.sendMessage(new ActiveMQQueue("user.log"),message);
} catch (JMSException e) {
e.printStackTrace();
}
return true;
}
}
3.3消费者
LoginConsumer代码
package com.czxy.mq.consumer;
import org.apache.activemq.command.ActiveMQMapMessage;
import org.springframework.jms.annotation.JmsListener;
import org.springframework.stereotype.Component;
import javax.jms.JMSException;
/**
* @author Fang
* @create 2018-10-20 18:22
* @desc 消费者
**/
@Component
public class LoginConsumer {
@JmsListener(destination = "user.log")
public void loginUser(ActiveMQMapMessage message){
try {
String name = message.getString("name");
System.out.println(name);
System.out.println("已消费");
} catch (JMSException e) {
e.printStackTrace();
}
}
}
``