springboot+ActiveMQ入门笔记

1,下载安装

去官方网站下载:http://activemq.apache.org/

解压后  D:\apache-activemq-5.15.0\bin\win64目录开启服务 activemq.bat  运行ActiveMQ程序(分为32位和64两种)

2,创建springboot项目 ,目录如下(不介绍怎么创建)


3,引入ActiveMQ的依赖

 <!-- actionmq -->
   <dependency>
     <groupId>org.apache.activemq</groupId>
     <artifactId>activemq-all</artifactId>
      <version>5.15.0</version>
   </dependency>

4,application.properties配置

server.port=8080
spring.mvc.view.prefix=/views/
spring.mvc.view.suffix=.jsp

spring.activemq.broker-url=tcp://localhost:61616
spring.activemq.user=admin
spring.activemq.password=admin
spring.activemq.pool.enabled=false
spring.activemq.pool.max-connections=50
spring.activemq.packages.trust-all=true 

5,创建消息类

package com.example.demo.message;

import java.io.Serializable;
import java.util.Date;

public class Message implements Serializable{
	private static final long serialVersionUID = 1L;
	private String id;
    private String from;
    private String to;
    private String text;
    private Date time;
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getFrom() {
		return from;
	}
	public void setFrom(String from) {
		this.from = from;
	}
	public String getTo() {
		return to;
	}
	public void setTo(String to) {
		this.to = to;
	}
	public String getText() {
		return text;
	}
	public void setText(String text) {
		this.text = text;
	}
	public Date getTime() {
		return time;
	}
	public void setTime(String time) {
		this.time = new Date(Long.valueOf(time));
	}
	@Override
	public String toString() {
		return "Message: "+ from +"想告诉"+  to +  text + time;
	}
   
}
6,消息发送接口sendService.java
package com.example.demo.service;


import org.springframework.stereotype.Service;

import com.example.demo.message.Message;
@Service
public interface sendService {
	 void addMessage(Message message);
}

sendServiceImpl.java实现类

package com.example.demo.service.Impl;

import javax.jms.Destination;

import org.apache.activemq.command.ActiveMQQueue;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.stereotype.Service;

import com.example.demo.message.Message;
import com.example.demo.service.sendService;
@Service
public class sendServiceImpl implements sendService{

	private final JmsTemplate jmsTemplate;

    @Autowired
    public sendServiceImpl(JmsTemplate jmsTemplate) {
        this.jmsTemplate = jmsTemplate;
    }


    @Override
    public void addMessage(Message message) {
        Destination destination = new ActiveMQQueue("my-msg");
        jmsTemplate.convertAndSend(destination, message);
    }

}

7,订阅者ReceiveService.java

package com.example.demo.service;

import javax.jms.JMSException;

import org.springframework.stereotype.Service;

import com.example.demo.message.Message;
@Service
public interface ReceiveService {
	 void receiveMessage(Message message) throws JMSException;
}

实现类ReceiveServiceImpl.java

package com.example.demo.service.Impl;

import javax.jms.JMSException;
import org.springframework.jms.annotation.JmsListener;
import org.springframework.stereotype.Service;

import com.example.demo.message.Message;
import com.example.demo.service.ReceiveService;
@Service
public class ReceiveServiceImpl implements ReceiveService{
	/**
	 * 指定接受对象
	 */
	@JmsListener(destination = "my-msg")
	@Override
	public void receiveMessage(Message message) throws JMSException {
		  System.out.println("收到:" + message);
	}

}

8,mq_controller.java

package com.example.demo.controler;


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;

import com.example.demo.message.Message;
import com.example.demo.service.Impl.sendServiceImpl;

@RestController
public class mq_controller {
	  @Autowired
	  private sendServiceImpl sendService;

	  @RequestMapping("/mq")
	  public ModelAndView index(){
	     return new ModelAndView("mq");
	  }

      @RequestMapping("/send")
      public String send(Message message){
        System.out.println("前台:" + message);
        sendService.addMessage(message);
        return "ok";
     }
}

9,mq.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Jms</title>
    <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
</head>
<style>
	.msg-wrap{
	    width: 600px;
	    margin: 25px auto;
	    box-shadow: 0 0 10px #dc143c;
	    border: 1px solid #f97991;
	    border-radius: 3px;
	}
	.msg-wrap .form-group{
	    margin: 15px;
	}
	.msg-wrap .form-group .form-control{
	    width: 100%;
	    height: 30px;
	    border: 1px solid #ddd;
	    border-radius: 3px;
	    text-indent: 8px;
	}
	.msg-wrap .form-group .textarea{
	    display: block;
	    font-size: 16px;
	    color: #ab1123;
	    padding: 8px;
	    border: 1px solid #ddd;
	    border-radius: 3px;
	}
	
	.btn{
	    display: inline-block;
	    padding: 8px 20px;
	    color: #fff;
	    background-color: crimson;
	    border-radius: 3px;
	    border: 1px solid crimson;
	    text-decoration: none;
	}
</style>
<body>
    <div class="msg-wrap">
        <div class="form-group">
            <input class="form-control" type="text" name="from" placeholder="发件人">
        </div>
        <div class="form-group">
            <input class="form-control" type="text" name="to" placeholder="收件人">
        </div>
        <div class="form-group">
            <textarea class="textarea" name="text"></textarea>
        </div>
        <div class="form-group">
            <a href="javascript:void(0)" class="btn">发送</a>
        </div>
    </div>
</body>
<script type="text/javascript">
$(function(){
    $('.btn').click(function(){
        var id = new Date().getDate() + "" + new Date().getMinutes();
        var from = $('input[name="from"]').val();
        var to = $('input[name="to"]').val();
        var text = $('textarea[name="text"]').val();
        var time = new Date().getTime();
        var url = "/send";
        var args = {"id": id, "from": from, "to": to, "text": text, "time": time};
        $.post(url, args, function(data){
            $('input[name="from"]').val("");
            $('input[name="to"]').val("");
            $('textarea[name="text"]').val("");
        });
    });
});

</script>
</html>

10,启动项目 ,访问http://localhost:8080/mq


后台打印


希望对你有帮助,谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值