小试Spring boot项目程序(进行get、post方法、打包运行)——————附带详细代码与示例

文章目录

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的提示信息,则说明程序运行成功!!

附录

完整的代码见此

参考

最新版MAVEN的安装和配置教程

打包spring boot的项目,在windows上运行

相关推荐
加藤不太惠1 小时前
【无标题】
java·数据结构·算法
Knight_AL2 小时前
如何在 Spring Boot 中集成 IP2Region 实现高效 IP 地址地理位置查询
java·spring boot·tcp/ip
山枕檀痕2 小时前
Spring Boot中LocalDateTime接收“yyyy-MM-dd HH:mm:ss“格式参数的最佳实践
java·spring boot·后端
Java水解2 小时前
【Spring Boot 单元测试教程】从环境搭建到代码验证的完整实践
后端·spring
乔伊酱2 小时前
Bean Searcher 遇“鬼”记:为何我的查询条件偷偷跑进了 HAVING?
java·前端·orm
invicinble2 小时前
idea提供maven处理机制
java·maven·intellij-idea
fantasy5_52 小时前
C++11 核心特性实战博客
java·开发语言·c++
Lear2 小时前
【JavaSE】动态代理技术详解与案例实战
后端
喜欢流萤吖~2 小时前
Java函数式接口详解
java