如何使用 Spring Boot 构建一个 RESTful Web 服务?

大家好,我是磊磊落落,目前我在技术上主要关注:Java、Golang、架构设计、云原生和自动化测试。欢迎来我的博客(leileiluoluo.com)获取我的最近更新!

本文原始链接:https://leileiluoluo.com/posts/building-a-restful-web-service-with-spring-boot.html

上文「如何快速搭建一个 Spring Boot 项目」介绍了使用 Spring Initializr 搭建 Spring Boot 模板项目的方法。本文接着介绍如何使用 Spring Boot 构建一个 RESTful Web 服务,主要关注项目的结构、注解的使用和单元测试代码的编写,并由此探索 Spring Boot 的设计理念与使用方法。

本文实现的 RESTful Web 服务提供用户(User)的增删改查功能,内部使用 Java ArrayList 实现数据的存储。

写作本文时,所使用的 JDK 版本、Maven 版本和 Spring Boot 版本分别为:

  • JDK 版本:BellSoft Liberica JDK 17
  • Maven 版本:3.9.2
  • Spring Boot 版本:3.1.0

1 项目结构

本文使用三层架构代码结构,src/main/java下主要分三个目录:controllermodelservice。处理请求和返回响应的逻辑控制器代码需要放在controller目录下;表示数据对象的 POJO 类需要方在model目录下;主要的业务逻辑代码需要抽取到服务中,然后放在service目录下(service目录下是接口类,impl目录下是实现类)。

spring-boot-restful-service-demo
├─ src/main/java
│   └─ com.example.demo
│       ├─ controller
│       │   └─ UserController.java
│       ├─ model
│       │   └─ User.java
│       ├─ service
│       │   ├─ UserService.java
│       │   └─ impl
│       │       └─ UserServiceImpl.java
│       └─ DemoApplication.java
├─ src/test/java
│   └─ com.example.demo
│       └─ controller
│           └─ UserControllerTest.java
└─ pom.xml

此外,src/test/java用于存放测试代码,测试代码应与被测试代码使用相同的包名。

2 源码分析

下面分析下该项目的源码,以期对 Spring Boot 的使用有一个基本的了解。

2.1 pom.xml 代码

Spring Boot 提供各类封装好的 Starter(以spring-boot-starter-*格式命名)供我们去使用,当需要某项依赖时,直接在pom.xml引用对应的 Starter 即可。

本文使用 Maven 管理依赖,pom.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 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.1.0</version>
        <relativePath/>
    </parent>
    <groupId>com.example</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>demo</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>17</java.version>
    </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-validation</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>
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值