【SpringBoot苍穹外卖】debugDay02

发布于:2025-02-13 ⋅ 阅读:(130) ⋅ 点赞:(0)

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 服务时非常方便,能够帮助开发者快速实现数据的返回和处理。


网站公告

今日签到

点亮在社区的每一天
去签到