文章目录
-
- [0 背景](#0 背景)
- [1 配置maven环境](#1 配置maven环境)
- [2 创建Spring boot项目](#2 创建Spring boot项目)
-
- 1,在`文件`中,选择`新建`--->`项目`,输入项目信息,点击`创建`;
- 2,配置maven基本信息(负责项目构建和依赖管理;构建时生效,影响项目编译、打包过程);
- [3,配置`application.propeties`信息(Spring Boot的全局配置文件;运行时生效,影响应用启动后的行为);](#3,配置
application.propeties信息(Spring Boot的全局配置文件;运行时生效,影响应用启动后的行为);) - 4,编写主函数代码;
- [5,编写接口(Controller 层)代码;](#5,编写接口(Controller 层)代码;)
- [6, 运行程序;](#6, 运行程序;)
- 7,访问接口;
- [3 项目打包与部署](#3 项目打包与部署)
- 附录
- 参考
0 背景
因为需要部署一个本地http接口测试的环境,因此选择了成熟的网页后端接口框架Spring boot进行开发。其实三年前也写过一篇类似的文章,但是之前的文章感觉有些冗余、可能方法也有更新,于是就写了这篇文章。
1 配置maven环境
Apache Maven 是一个基于 POM(Project Object Model) 的 项目管理和构建工具,主要用于 Java 项目(也支持其他语言)。它通过标准化项目结构和配置文件,自动化管理依赖、编译、测试、打包和部署流程。
1,官网上,下载maven;

这里不下载Maven Daemon,但是可以了解一下。Maven Daemon(mvnd) 是 Apache 推出的 Maven 守护进程工具,通过常驻 JVM、并行构建和类加载器缓存等机制,大幅提升构建速度。相比传统 Maven,官方测试可提升 2~10 倍性能,尤其在多模块项目中效果显著。
下载好的文件如下图所示:

2,配置环境变量;
使用command + R打开运行,输入sysdm.pl,

在高级中,点击环境变量进行设置;

在环境变量(S)中,点击新建,填入变量名与文件路径:


然后,找到path的变量,点击编辑,添加一条maven的路径;

最后点击应用与确定。

3,测试环境;
打开命令行,输入mvn -v,如果能正常显示版本信息,则配置成功。

2 创建Spring boot项目
1,在文件中,选择新建--->项目,输入项目信息,点击创建;


2,配置maven基本信息(负责项目构建和依赖管理;构建时生效,影响项目编译、打包过程);
以下为项目刚创建时的配置信息,
xml
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!-- 项目信息-->
<groupId>com.jk</groupId>
<artifactId>SpringBootLearning</artifactId>
<version>1.0-SNAPSHOT</version>
<!-- 编译的Java版本信息-->
<properties>
<maven.compiler.source>22</maven.compiler.source>
<maven.compiler.target>22</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
</project>
添加如下信息:
- 1,继承自
spring-boot-starter-parent,简化配置(Maven 会自动识别 src/main/java、src/main/resources 等标准路径,无需额外配置;父类中有Spring Boot 生态中几乎所有常用库(如 Spring Framework、Spring Data、Tomcat、JUnit 等)的兼容版本号)、统一标准(父 POM 定义了一些合理的默认属性,确保团队开发的一致性)以及避免版本冲突。
xml
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.2.5</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
- 2,构建 Web 应用的"引擎"(内嵌Tomcat服务器;集成了 Spring MVC;自动配置了 Jackson,处理json);
xml
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
- 3,用于编写测试代码,确保程序逻辑是正确的(自动引入 JUnit(单元测试框架)、Mockito(模拟对象)、Spring Test(Spring 集成测试支持)等常用测试工具;依赖只在测试阶段的有效);
xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
- 4,用于打包部署(可执行 JAR,内置启动器);
xml
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
完整的配置信息如下所示:
xml
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!-- 项目信息-->
<groupId>com.jk</groupId>
<artifactId>SpringBootLearning</artifactId>
<version>1.0-SNAPSHOT</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.2.5</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<maven.compiler.source>22</maven.compiler.source>
<maven.compiler.target>22</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
<dependencies>
<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,配置application.propeties信息(Spring Boot的全局配置文件;运行时生效,影响应用启动后的行为);
在resources中,新建application.propeties文件,

新建后,会出现如下文件,

文件中添加如下内容:
java
# 应用程序名称
spring.application.name=springboot-api
# 服务器端口
server.address=192.168.2.222
server.port=8080
# 日志级别
logging.level.root=INFO
logging.level.com.example=DEBUG
# 编码格式
server.servlet.encoding.force=true
server.servlet.encoding.charset=UTF-8
server.servlet.encoding.enabled=true
server.tomcat.uri-encoding=UTF-8
# 允许跨域请求
spring.mvc.cors.allowed-origins=*
spring.mvc.cors.allowed-methods=GET,POST,PUT,DELETE,OPTIONS
spring.mvc.cors.allowed-headers=*
4,编写主函数代码;
先新建软件包,


新建完成后,如下所示:

在com.jk目录下,新建Java类:



在类中编写如下代码:
java
package com.jk;
@SpringBootApplication
public class SpringBootApiApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootApiApplication.class, args
);
}
}
提示缺类后,可以手动导入类:

导入成功后,如下所示:
java
package com.jk;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SpringBootApiApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootApiApplication.class, args
);
}
}
5,编写接口(Controller 层)代码;
新建软件包:

新建Java类:

编码:
java
package com.jk.controller;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.HashMap;
import java.util.Map;
@RestController
@RequestMapping("/api")
public class ApiController {
// GET请求示例:获取系统信息
@GetMapping("/system/info")
public ResponseEntity<Map<String, Object>> getSystemInfo() {
Map<String, String> systemInfo = new HashMap<>();
systemInfo.put("appName", "Spring Boot API Demo");
systemInfo.put("version", "1.0.0");
systemInfo.put("status", "running");
return createResponseEntity(systemInfo, HttpStatus.OK, "System information retrieved successfully");
}
// POST请求示例:创建新资源
@PostMapping("/resource")
public ResponseEntity<Map<String, Object>> createResource(@RequestBody Map<String, Object> requestBody) {
// 处理请求体数据
Map<String, Object> data = new HashMap<>();
data.put("received_data", requestBody);
data.put("resourceId", generateResourceId());
return createResponseEntity(data, HttpStatus.CREATED, "Resource created successfully");
}
// 辅助方法:创建统一的响应结构,自动添加code字段(HTTP状态码的字符串形式)
private <T> ResponseEntity<Map<String, Object>> createResponseEntity(T data, HttpStatus status, String message) {
Map<String, Object> response = new HashMap<>();
response.put("status", status.is2xxSuccessful() ? "success" : "error");
response.put("message", message);
response.put("data", data);
response.put("timestamp", System.currentTimeMillis());
response.put("code", String.valueOf(status.value())); // 添加code字段,值为HTTP状态码的字符串形式
return new ResponseEntity<>(response, status);
}
// 辅助方法:创建错误响应
private ResponseEntity<Map<String, Object>> createErrorResponse(HttpStatus status, String message) {
return createResponseEntity(null, status, message);
}
// 辅助方法:生成资源ID
private String generateResourceId() {
return "RES-" + System.currentTimeMillis() + "-" + (int)(Math.random() * 1000);
}
}
6, 运行程序;
在SpringBootApiApplication中,运行程序:

运行成功后,会出现如下显示:

7,访问接口;
在网址中,输入接口名称http://192.168.2.222:8080/api/system/info,进行get请求,就会显示返回的接口数据;

使用apixfox进行post请求;

3 项目打包与部署
在编译器右边,点击m标识,先点击clean,再进行package;

出现如下提示,则说明打包成功。

提示信息中,已说明了打包完成后的包路径,根据路径找到文件。

把文件放到自己需要的位置(比如,这里放在E:\test中),打开命令提示符(command + R),输入如下指令,如果成功出现Spring boot的提示信息,则说明程序运行成功!!

附录
完整的代码见此
