本文介绍从 0 开始使用 spring 搭建 API 服务器,内容非常基础就算你不会 java 也能轻松上手。喜欢的同学收藏起来方便后面查看。
1. 安装环境
1.1. 安装 JDK 17
JDK 17 会自动设置环境变量,无需手动配置。
1.2. 安装 maven
去网站 Maven – Download Apache Maven 下载,下载得到压缩包,解压到 D 盘然后配置环境变量。
1.3. 安装 idealUI
找个大佬,问他要一下网盘地址和破解文档,下载完之后破解,重启。
2. 生成项目框架
2.1. 使用 spring Initializr 初始化项目,地址为:Spring Initializr
打开网站之后按照上面填写后点击 GENERATE 按钮即可下载生成的项目!
2.2. 使用 idea 打开下载的项目
右键选择打开即可。
3. 修改项目内容
3.1. 打开项目之后,按照下图创建缺失的 java 文件 ApiController.
3.2. 然后依次修改下图圈出的文件
3.3. 修改 pom.xml 引入 spring 的相关依赖
整体代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.3.1</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.supcon</groupId>
<artifactId>simple-api-server</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>simple-api-server</name>
<description>Api Service For IOT</description>
<url/>
<licenses>
<license/>
</licenses>
<developers>
<developer/>
</developers>
<scm>
<connection/>
<developerConnection/>
<tag/>
<url/>
</scm>
<properties>
<java.version>17</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
3.4. 在 terminal 中打开 bash 命令行,先检查 mvn 安装成功否,然后再安装项目依赖
mvn -version
mvn clean install
最后重启项目:
3.5. 设置此 api 服务器的 端口号,在 application.properties 中增加配置
spring.application.name=simple-api-server
server.port=8080
3.6. 修改 SimpleApiServiceApplication.java 的内容如下:
package com.supcon.simple_api_server;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SimpleApiServerApplication {
public static void main(String[] args) {
SpringApplication.run(SimpleApiServerApplication.class, args);
}
}
这段代码定义了一个简单的REST控制器ApiController
,它使用Spring Web框架来处理HTTP请求。@RestController
注解表明这个类中的所有方法都将返回直接的响应数据,而不是视图。@RequestMapping("/api")
注解定义了这个控制器处理请求的基础路径。
sayHello
方法使用@GetMapping("/hello")
注解来处理对/api/hello
路径的GET请求。该方法接受一个名为name
的请求参数,如果请求中没有提供name
,则默认使用"World"。方法返回一个字符串,格式为"Hello, [name]!",用于响应客户端的请求。
这段代码创建了一个API端点,当客户端访问/api/hello
并可选地提供一个name
参数时,它会返回一个问候语。如果没有指定name
,则默认问候"World"。
3.7. 修改 ApiController.java 的内容如下:
package com.supcon.simple_api_server;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
@RestController
@RequestMapping("/api")
public class ApiController {
// 一个简单的GET请求处理方法
@GetMapping("/hello")
public String sayHello(@RequestParam(value = "name", defaultValue = "World") String name) {
return "Hello, " + name + "!";
}
}
这段代码是Spring Boot应用程序的入口点,定义了一个名为SimpleApiServerApplication
的Java类。@SpringBootApplication
是一个方便的注解,它包含了@Configuration
、@EnableAutoConfiguration
和@ComponentScan
三个注解,用于启动Spring Boot应用并自动配置Spring应用上下文。
@EnableAutoConfiguration
告诉Spring Boot根据添加的jar依赖自动配置应用。@ComponentScan
允许Spring Boot扫描定义在@SpringBootApplication
类所在的包以及子包中的Spring组件。
main
方法是Java程序的入口点,SpringApplication.run(SimpleApiServerApplication.class, args);
这行代码会启动Spring Boot应用。args
是传递给应用程序的命令行参数,可以用于配置应用程序。
这段代码通过Spring Boot框架简化了应用程序的启动过程,使得开发者只需关注业务逻辑的实现,无需编写大量的配置代码。当运行main
方法时,Spring Boot应用将启动,并且所有相关的Spring组件将被自动配置和加载。
3.8. 试运行,使用快捷键 shift+f10
成功启动的效果:
3.9. 尝试请求,使用 curl http://localhost:8080/api/hello?name=Kimi
希望本文能够让您对 spring 或者 java 有一个简单的印象。这篇文章的本意也在于此。