Spring集成Artemis实现JSM的异步消息传递
最后更新于
spring:
artemis:
broker-url: tcp://api.mcyou.cc
user: admin
password: passwdimport org.apache.activemq.artemis.jms.client.ActiveMQQueue;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.stereotype.Service;
import javax.jms.Destination;
@Service
public class JmsMessagingService {
private JmsTemplate jms;
private Destination messageQueue = new ActiveMQQueue("cc.mcyou.queue");;
@Autowired
public JmsMessagingService(JmsTemplate jms){
this.jms = jms;
}
public void sendUser(User user){
jms.send(messageQueue, session -> session.createObjectMessage(user));
}
public void sendUser2(User user){
jms.convertAndSend("cc.mcyou.queue", user);
}
}import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.stereotype.Component;
@Component
public class JmsMessageReceiver {
private JmsTemplate jms;
@Autowired
public JmsMessageReceiver(JmsTemplate jms){
this.jms = jms;
}
public User receiveUser(){
return (User)jms.receiveAndConvert("cc.mcyou.queue");
}
}import org.springframework.jms.annotation.JmsListener;
import org.springframework.stereotype.Component;
@Component
public class UserListener {
@JmsListener(destination = "cc.mcyou.queue")
public void receiveUser(User user){
System.out.println("收到用户:"+user.name);
}
}