SpringBoot整合ActiveMQ
1 示例
首先,需要在创建的时候需要添加如下依赖
web、Spring for Apache Active MQ5
提供了activemq的自动化配置
//8161是管理界面的端口
//61616是通讯的端口
spring.activemq.broker-url=tcp://49.234.25.176:61616
spring.activemq.packages.trust-all=true
spring.activemq.user=admin
spring.activemq.password=admin
创建一个bean,可以偷懒可以在启动类里面写
import javax.jms.Queue;//注意是在jms包下
@SpringBootApplication
public class ActivemqApplication {
public static void main(String[] args) {
SpringApplication.run(ActivemqApplication.class, args);
}
@Bean
Queue queue(){
return new ActiveMQQueue("hello java!");
}
}
定义一个消息类:
//为了能够传输需要进行序列化
public class Message implements Serializable {
private String content;
private Date sendDate;
@Override
public String toString() {
return "Message{" +
"content='" + content + '\'' +
", sendDate=" + sendDate +
'}';
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public Date getSendDate() {
return sendDate;
}
public void setSendDate(Date sendDate) {
this.sendDate = sendDate;
}
}
进行配置:
@Component
public class JmsComponent {
@Autowired
JmsMessagingTemplate jmsMessagingTemplate;
@Autowired
Queue queue;
//消息的生产者
public void send(Message message){
jmsMessagingTemplate.convertAndSend(this.queue,message);
}
//消息的消费者
@JmsListener(destination = "hello.java")//定义的消息队列的名字
public void recevice(Message message){
System.out.println(message);
}
}
然后启动项目ActivemqAppliaction
再在测试类执行,最终在ActivemqAppliaction会收到你发送的消息
@SpringBootTest
class ActivemqApplicationTests {
@Autowired
JmsComponent jmsComponent;
@Test
void contextLoads() {
Message message=new Message();
message.setContent("hello 加油");
message.setSendDate(new Date());
jmsComponent.send(message);
}
}