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

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

消息队列案例

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

定义的是发送消息

短信消息处理

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

我们再取出来

控制台打印

一取一个

目录
相关文章
|
5月前
|
安全 Java Ruby
我尝试了所有后端框架 — — 这就是为什么只有 Spring Boot 幸存下来
作者回顾后端开发历程,指出多数框架在生产环境中难堪重负。相比之下,Spring Boot凭借内置安全、稳定扩展、完善生态和企业级支持,成为构建高可用系统的首选,真正经受住了时间与规模的考验。
419 2
|
4月前
|
安全 前端开发 Java
《深入理解Spring》:现代Java开发的核心框架
Spring自2003年诞生以来,已成为Java企业级开发的基石,凭借IoC、AOP、声明式编程等核心特性,极大简化了开发复杂度。本系列将深入解析Spring框架核心原理及Spring Boot、Cloud、Security等生态组件,助力开发者构建高效、可扩展的应用体系。(238字)
|
6月前
|
XML JSON Java
Spring框架中常见注解的使用规则与最佳实践
本文介绍了Spring框架中常见注解的使用规则与最佳实践,重点对比了URL参数与表单参数的区别,并详细说明了@RequestParam、@PathVariable、@RequestBody等注解的应用场景。同时通过表格和案例分析,帮助开发者正确选择参数绑定方式,避免常见误区,提升代码的可读性与安全性。
|
7月前
|
Java Spring
聊聊你对SpringBoot框架的理解 ?
SpringBoot是Spring家族中流行的子项目,旨在简化Spring框架开发的繁琐配置。它主要提供三大功能:starter起步依赖简化依赖管理,自动配置根据条件创建Bean,以及内嵌Web服务器支持Jar包运行,极大提升了开发效率。
237 0
|
4月前
|
消息中间件 缓存 Java
Spring框架优化:提高Java应用的性能与适应性
以上方法均旨在综合考虑Java Spring 应该程序设计原则, 数据库交互, 编码实践和系统架构布局等多角度因素, 旨在达到高效稳定运转目标同时也易于未来扩展.
295 8
|
5月前
|
监控 Kubernetes Cloud Native
Spring Batch 批处理框架技术详解与实践指南
本文档全面介绍 Spring Batch 批处理框架的核心架构、关键组件和实际应用场景。作为 Spring 生态系统中专门处理大规模数据批处理的框架,Spring Batch 为企业级批处理作业提供了可靠的解决方案。本文将深入探讨其作业流程、组件模型、错误处理机制、性能优化策略以及与现代云原生环境的集成方式,帮助开发者构建高效、稳定的批处理系统。
628 1
|
7月前
|
安全 Java 微服务
Java 最新技术和框架实操:涵盖 JDK 21 新特性与 Spring Security 6.x 安全框架搭建
本文系统整理了Java最新技术与主流框架实操内容,涵盖Java 17+新特性(如模式匹配、文本块、记录类)、Spring Boot 3微服务开发、响应式编程(WebFlux)、容器化部署(Docker+K8s)、测试与CI/CD实践,附完整代码示例和学习资源推荐,助你构建现代Java全栈开发能力。
825 1
|
7月前
|
NoSQL Java 数据库连接
SpringBoot框架
Spring Boot 是 Spring 家族中最流行的框架,旨在简化 Spring 应用的初始搭建与开发。它通过自动配置、起步依赖和内嵌服务器三大核心功能,大幅减少配置复杂度,提升开发效率。开发者可快速构建独立运行的 Web 应用,并支持多种数据访问技术和第三方集成。
|
6月前
|
Cloud Native Java API
Java Spring框架技术栈选和最新版本及发展史详解(截至2025年8月)-优雅草卓伊凡
Java Spring框架技术栈选和最新版本及发展史详解(截至2025年8月)-优雅草卓伊凡
1264 0
|
8月前
|
Java API 网络架构
基于 Spring Boot 框架开发 REST API 接口实践指南
本文详解基于Spring Boot 3.x构建REST API的完整开发流程,涵盖环境搭建、领域建模、响应式编程、安全控制、容器化部署及性能优化等关键环节,助力开发者打造高效稳定的后端服务。
1155 1