后端学习笔记-搭建 SpringBoot 后端项目

最近因为业务需要了解一些后端的知识,参与后端的部分开发,所以计划学习部分后端的开发知识。

这篇文章主要介绍从 0 到 1 搭建一个能响应给定路径请求的,基于 SpringBoot 的后端项目。

前期准备

  1. IDE 使用 IntelliJ IDEA 2023.2
  2. Java 版本为 Java8
  3. Java 包管理器使用 Maven

# 搭建后端项目

打开 IDEA,点击 NewProject

Untitled

在新出现的窗口里,选择左侧的 Spring Initializr 选项,然后填写工程的一些基础配置信息,然后点击 Next。

Untitled

Java8 和 jdk1.8.0 是一个意思。

新窗口中确定 SpringBoot 版本,同时添加依赖项 Spring Web

Untitled

点击 Create 之后,等进度条走完之后,就会打开我们新创建的项目。

Untitled

# 运行报错修改

尝试运行之后发现报错了

java: 警告: 源发行版 17 需要目标发行版 17

目测应该是 Java 版本不一致导致的,打开 File → Project Sturcture,弹出框左侧选择 Project Settings → Module 在 Language Level 里配置为 8,重新编译。

Untitled

发现还是报一样的错误,打开 IntelliJ IDEA → Settings 重新配置 Java 编译器的版本为 8

Untitled

同时修改工程内包配置文件 pom.xml 中的 java版本为 8

Untitled

pom.xml 是 Maven 管理依赖的文件

再次运行之后,还是报错,不过报错内容变了,如下

java: 无法访问org.springframework.boot.SpringApplication
错误的类文件: /Users/xiushanfan/.m2/repository/org/springframework/boot/spring-boot/3.1.3/spring-boot-3.1.3.jar!/org/springframework/boot/SpringApplication.class
    类文件具有错误的版本 61.0, 应为 52.0
    请删除该文件或确保该文件位于正确的类路径子目录中。

搜了一下应该是 SpringBoot3.x 之后会依赖更高版本的 Java,所以 pom.xml 里的 SpringBoot 依赖换成小一点的版本,并更新一下本地库

Untitled

如果还是不行的花,可以去 Project Structure 里去移除掉那些没用的 SDK,然后配置 1.8 为默认的 Java SDK 版本,如图。

Untitled

再次运行就能正常运行了,运行如图

Untitled

总结上面这些报错的原因,基本上都是版本不一致到的问题,最关键的就是 Java 版本相关的报错,要保证编译器编译版本、项目配置编译版本以及 Maven 编译版本,这三端的Java版本配置一致。

# 配置响应路径

Java 环境能正常跑起来,表示项目配置的没有问题,接下来尝试配置一个请求路径,比如我们访问 http://localhost:8080/hello (opens new window),项目会返回一个 “Hello World” 的字符串。

创建一个 controller 的包,然后创建 GreetingController 的文件,内容如下

package com.fanthus.hello.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class GreetingController {
    @ResponseBody
    @RequestMapping("/hello")
    public String hello() {
        return "Hello world!";
    }
}

Untitled

启动项目后,打开浏览器,输入路径 http://localhost:8080/hello (opens new window) 会看到我们返回的 ”Hello World!” 的字符串

Untitled

运行这段后端程序本质上就是本地起了 TomCat 服务,并开放了 8080 端口供本地访问。

代码中的 @Controller@ResponseBody@RequestMapping("/hello") 都是 Java 语言的注解,@Controller 注解配合 @ResponseBody,表明方法里返回给前端的不是视图,而是数据。

以上,就是搭建一个基于 SpringBoot 后端项目的全部过程,算是一个后端初体验。

参考地址:

  1. Spring-Building an Application with Spring Boot (opens new window)
  2. IDEA创建Spring Boot项目 (opens new window)
  3. SpringBoot的Controller层常用注解 (opens new window)