最近因为业务需要了解一些后端的知识,参与后端的部分开发,所以计划学习部分后端的开发知识。
这篇文章主要介绍从 0 到 1 搭建一个能响应给定路径请求的,基于 SpringBoot 的后端项目。
前期准备
- IDE 使用 IntelliJ IDEA 2023.2
- Java 版本为 Java8
- Java 包管理器使用
Maven
# 搭建后端项目
打开 IDEA,点击 NewProject
在新出现的窗口里,选择左侧的 Spring Initializr 选项,然后填写工程的一些基础配置信息,然后点击 Next。
Java8 和 jdk1.8.0 是一个意思。
新窗口中确定 SpringBoot 版本,同时添加依赖项 Spring Web
。
点击 Create
之后,等进度条走完之后,就会打开我们新创建的项目。
# 运行报错修改
尝试运行之后发现报错了
java: 警告: 源发行版 17 需要目标发行版 17
目测应该是 Java 版本不一致导致的,打开 File → Project Sturcture,弹出框左侧选择 Project Settings → Module 在 Language Level 里配置为 8,重新编译。
发现还是报一样的错误,打开 IntelliJ IDEA → Settings 重新配置 Java 编译器的版本为 8
同时修改工程内包配置文件 pom.xml 中的 java版本为 8
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 依赖换成小一点的版本,并更新一下本地库
如果还是不行的花,可以去 Project Structure 里去移除掉那些没用的 SDK,然后配置 1.8 为默认的 Java SDK 版本,如图。
再次运行就能正常运行了,运行如图
总结上面这些报错的原因,基本上都是版本不一致到的问题,最关键的就是 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!";
}
}
启动项目后,打开浏览器,输入路径 http://localhost:8080/hello (opens new window) 会看到我们返回的 ”Hello World!”
的字符串
运行这段后端程序本质上就是本地起了 TomCat 服务,并开放了 8080 端口供本地访问。
代码中的 @Controller
,@ResponseBody
,@RequestMapping("/hello")
都是 Java 语言的注解,@Controller
注解配合 @ResponseBody
,表明方法里返回给前端的不是视图,而是数据。
以上,就是搭建一个基于 SpringBoot 后端项目的全部过程,算是一个后端初体验。
参考地址: