当前位置: 首页 > article >正文

【SpringBoot苍穹外卖】debugDay02

1、数据库没有链接,在编写sql语句时无法弹出提示

解决1旧版:

在旁边链接,第一次链接idea会提示没有下载driver,下载一下就好了,没有出现表,刷新一下试试。

但是这个只有旧版才有用,新版就算能在旁边显示数据库表等,还是没能连接。

解决2新版:

所以,新版idea(2024.2.4)连接如下:

idea2024版本: Show Contacks Action->Language injection Setting->mysql

我打开项目时默认设置的是sql,虽然可以检测语法问题,但不能连上自己的数据库,一定要改成mysql,痛的领悟!!

2、服务端报错

500是mapper层数据库语言出问题

401为token过期

3、复习@RestController

@RestController 是 Spring 框架中的一个注解,它主要用于构建 RESTful Web 服务。以下从多个方面详细介绍其作用和用法:

功能概述

@RestController 是一个组合注解,它结合了 @Controller@ResponseBody 注解的功能。在 Spring MVC 框架中,使用这个注解的类会被 Spring 识别为控制器,并且该类中所有处理请求的方法返回的数据都会被直接写入 HTTP 响应体中,而不会经过视图解析器进行视图渲染,通常用于返回 JSON、XML 等数据格式。

具体作用

1. 标识控制器类

@RestController 用于将一个类标记为 Spring MVC 控制器,Spring 会自动扫描带有该注解的类,并将其注册到应用的上下文之中。例如:

import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {
    // 控制器的处理方法
}

在上述代码中,HelloController 类被标记为一个 RESTful 控制器。

2. 自动处理响应体

@RestController 注解隐含了 @ResponseBody 的功能,这意味着控制器中所有处理请求的方法返回的对象会被自动序列化为适合的 HTTP 响应格式(如 JSON 或 XML)。示例如下:

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

    @GetMapping("/hello")
    public String sayHello() {
        return "Hello, World!";
    }
}

当客户端访问 /hello 路径时,服务器会直接返回字符串 "Hello, World!" 作为响应体内容。

3. 简化开发

相比于传统的 @Controller 注解,@RestController 减少了代码的冗余,开发者无需在每个处理请求的方法上都添加 @ResponseBody 注解。以下是使用 @Controller@ResponseBody 的对比示例:

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class TraditionalController {

    @GetMapping("/traditional")
    @ResponseBody
    public String traditionalHello() {
        return "Hello from traditional controller!";
    }
}

可以看到,使用 @RestController 可以让代码更加简洁。

适用场景

@RestController 适用于构建 RESTful API 服务,这些服务通常需要返回 JSON 或 XML 等数据格式,供前端应用或其他服务调用。例如,开发一个电商系统的商品信息接口:

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Arrays;
import java.util.List;

@RestController
public class ProductController {

    @GetMapping("/products")
    public List<String> getProducts() {
        return Arrays.asList("Product 1", "Product 2", "Product 3");
    }
}

当客户端访问 /products 路径时,服务器会返回一个包含商品名称的 JSON 数组。

综上所述,@RestController 注解在构建 RESTful Web 服务时非常方便,能够帮助开发者快速实现数据的返回和处理。


http://www.kler.cn/a/541832.html

相关文章:

  • PyCharm结合DeepSeek-R1
  • Java 使用腾讯翻译 API 实现含 HTML 标签文本,json值,精准翻译工具
  • 现代前端开发的演进与未来趋势:从工具革新到技术突破
  • 征程 6 相比征程 5 对算子支持扩展的具体案例讲解
  • ndk 编译opencv(去除libandroid.so mediandk依赖)
  • PWM波形输出
  • SpringBoot中为什么要引入消息队列依赖项
  • 防御保护-----前言
  • 用于构建基于大型语言模型(LLM)的开源框架LangChain介绍及代码实践
  • 浅谈TCP的三次握手和四次挥手
  • 关于arm
  • 抽象工厂模式详解(Java)
  • floodfill算法系列一>图像渲染
  • 创新领先!珈和科技获评省级企业技术中心
  • 第五节 采样方法的分类及介绍
  • 蓝桥杯JavaB组之集合框架(ArrayList、HashMap 基础操作)
  • 【ThreeJS Basics 1-3】Hello ThreeJS,实现第一个场景
  • Qt - 地图相关 —— 2、Qt调用百度在线地图功能示例全集,包含线路规划、地铁线路查询等(附源码)
  • 喂饭式教程 - 腾讯云轻量服务器部署DeepSeek
  • C++ | Goal 解析器实现
  • 4.Excel:李东阳-电器企业-本年度的生产与营销计划❗(18)
  • Linux 快速对比两个文件的差异值
  • ORM框架(Object-Relational Mapping,对象关系映射框架)
  • 使用Hexo部署NexT主体网站
  • 现代前端工程化实践:高效构建的秘密
  • 以简单的方式过一生