JavaWeb后端开发Spring框架之消息 消息队列案例--订单短信通知

目录

消息队列案例

短信消息处理

这里就是打印日志 将消息打印在控制台

这个核心是消息队列

写这个业务层接口的实现类

进行发信息

但是我们的业务层实现类的代码不全

作为依赖注入的消息队列的实现类

消息队列核心逻辑的处理

我们要书写一个表现层方法

方法就是放入一个消息

接着我们还要写一个表现层

这是做了消息处理

接下来就是启动测试

发送post请求

传入id

控制台打印

放入了id

控制台打印

一取一个

个人号推广

博客主页

Web后端开发

Web前端开发

数据库开发

项目实战

算法与数据结构

计算机基础

回忆录


消息队列案例

首先我们书写一个业务层接口

定义的是发送消息

短信消息处理

package com.bigdata1421.message.service;

public interface OrderService {

    void order(String id);

}

创建业务层的实现类

并且我们要重写方法

这里就是打印日志 将消息打印在控制台

再写一个业务层接口

一个操作是把要发送短信的ID放到消息队列当中去

另一个操作是从消息队列中取出一个消息然后发送短信

这个核心是消息队列

package com.bigdata1421.message.service;

public interface MessageService {
    void sendMessage(String id);
    String doMessage();
}

写这个业务层接口的实现类

package com.bigdata1421.message.service.impl;

import com.bigdata1421.message.service.MessageService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class MessageServiceImpl implements MessageService {

    @Override
    public void sendMessage(String id) {
    }

    @Override
    public String doMessage() {
        return null;
    }

}

这时我们要进行业务层实现类的代码补全

首先在订单中注入消息实现类对象

进行发信息

package com.bigdata1421.message.service.impl;

import com.bigdata1421.message.service.OrderService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class OrderServiceImpl implements OrderService {

    @Autowired
    private MessageServiceImpl messageService;

    @Override
    public void order(String id) {
        //一系列的操作 包括各种服务调用
        //处理各种业务

        //短信消息处理
        System.out.println("订单处理开始");
        messageService.sendMessage(id);
        System.out.println("订单处理结束");

    }
}

但是我们的业务层实现类的代码不全

即我们刚刚书写的核心

我们还要进行一个补全

作为依赖注入的消息队列的实现类

我们进行补全

消息队列核心逻辑的处理

package com.bigdata1421.message.service.impl;

import com.bigdata1421.message.service.MessageService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;

@Service
public class MessageServiceImpl implements MessageService {

    private ArrayList<String> msgList=new ArrayList<>();

    @Override
    public void sendMessage(String id) {
        System.out.println("待发送的短信呼订单已纳入处理队列");
        System.out.println("id:"+id);
        msgList.add(id);
    }

    @Override
    public String doMessage() {
        String id = msgList.remove(0);
        System.out.println("已完成短信发送业务");
        System.out.println("id:"+id);
        return id;
    }

}

但是我们还要进行测试

我们要书写一个表现层方法

在表现层开发注入业务层对象 OrderService

补全方法

方法就是放入一个消息

package com.bigdata1421.message.controller;

import com.bigdata1421.message.service.OrderService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/orders")
public class OrderController {

    @Autowired
    private OrderService orderService;

    @PostMapping("{id}")
    public void order(@PathVariable String id){
        orderService.order(id);
    }
}

接着我们还要写一个表现层

MessageController

这是做了消息处理

package com.bigdata1421.message.controller;

import com.bigdata1421.message.service.MessageService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/msg")
public class MessageController {

    @Autowired
    private MessageService messageService;

    @GetMapping
    public String doMessage(){
        String id = messageService.doMessage();
        return id;
    }
}

接下来就是启动测试

我们是基于一个案例的场景执行我们的操作

我们启动postman进行测试

发送post请求

传入id

控制台打印

放入了id

我们再取出来

控制台打印

一取一个

个人号推广

博客主页

多多!-CSDN博客

Web后端开发

https://blog.csdn.net/qq_30500575/category_12624592.html?spm=1001.2014.3001.5482

Web前端开发

https://blog.csdn.net/qq_30500575/category_12642989.html?spm=1001.2014.3001.5482

数据库开发

https://blog.csdn.net/qq_30500575/category_12651993.html?spm=1001.2014.3001.5482

项目实战

https://blog.csdn.net/qq_30500575/category_12699801.html?spm=1001.2014.3001.5482

算法与数据结构

https://blog.csdn.net/qq_30500575/category_12630954.html?spm=1001.2014.3001.5482

计算机基础

https://blog.csdn.net/qq_30500575/category_12701605.html?spm=1001.2014.3001.5482

回忆录

https://blog.csdn.net/qq_30500575/category_12620276.html?spm=1001.2014.3001.5482

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值