首页 >Java >java教程 >使用 Spring Boot 和 Docker 构建用户 CRUD 应用程序

使用 Spring Boot 和 Docker 构建用户 CRUD 应用程序

WBOY
WBOY原创
2024-09-07 06:33:38772浏览

Building a User CRUD Application with Spring Boot and Docker

介绍

Spring Boot 是一个使用 Spring 框架简化生产就绪应用程序开发的框架。它提供了一组工具和约定来帮助您快速高效地构建应用程序。借助 Spring Boot,您可以通过最少的配置轻松创建独立的生产级应用程序。

本指南将引导您使用 Spring Boot 创建一个简单的用户 CRUD(创建、读取、更新、删除)应用程序。我们还将使用 Docker 将应用程序容器化,以确保不同环境之间的一致性。

先决条件

确保您已安装以下软件:

  • Java JDK 11 或更高版本
  • Maven
  • 码头工人
  • Git

第1步:创建一个新的Spring Boot项目

生成项目

使用 Spring Initializr 生成新的 Spring Boot 项目:

  • 项目:Maven 项目
  • 语言:Java
  • Spring Boot:3.2.0
  • 群组:com.example
  • 神器:user-crud
  • 依赖项:Spring Web、Spring Data JPA、H2 数据库

点击“生成”下载项目,然后解压。

导航到项目目录

cd user-crud

步骤 2:定义用户实体

创建实体类

在 src/main/java/com/example/usercrud 中创建一个名为 User.java 的新 Java 类:

package com.example.usercrud;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity
public class User {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private String name;
    private String email;

    // Getters and Setters
    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }
}

第 3 步:创建用户存储库

创建存储库接口

在 src/main/java/com/example/usercrud 中创建一个名为 UserRepository.java 的新 Java 接口:

package com.example.usercrud;

import org.springframework.data.jpa.repository.JpaRepository;

public interface UserRepository extends JpaRepository<User, Long> {
}

第 4 步:创建用户控制器

创建 REST 控制器

在 src/main/java/com/example/usercrud 中创建一个名为 UserController.java 的新 Java 类:

package com.example.usercrud;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import java.util.List;
import java.util.Optional;

@RestController
@RequestMapping("/api/users")
public class UserController {

    @Autowired
    private UserRepository userRepository;

    @PostMapping
    public ResponseEntity<User> createUser(@RequestBody User user) {
        User savedUser = userRepository.save(user);
        return new ResponseEntity<>(savedUser, HttpStatus.CREATED);
    }

    @GetMapping
    public List<User> getAllUsers() {
        return userRepository.findAll();
    }

    @GetMapping("/{id}")
    public ResponseEntity<User> getUserById(@PathVariable Long id) {
        Optional<User> user = userRepository.findById(id);
        return user.map(ResponseEntity::ok).orElseGet(() -> ResponseEntity.notFound().build());
    }

    @PutMapping("/{id}")
    public ResponseEntity<User> updateUser(@PathVariable Long id, @RequestBody User user) {
        if (!userRepository.existsById(id)) {
            return ResponseEntity.notFound().build();
        }
        user.setId(id);
        User updatedUser = userRepository.save(user);
        return ResponseEntity.ok(updatedUser);
    }

    @DeleteMapping("/{id}")
    public ResponseEntity<Void> deleteUser(@PathVariable Long id) {
        if (!userRepository.existsById(id)) {
            return ResponseEntity.notFound().build();
        }
        userRepository.deleteById(id);
        return ResponseEntity.noContent().build();
    }
}

第 5 步:创建 Dockerfile

添加 Dockerfile

在项目的根目录中创建一个名为 Dockerfile 的文件,其中包含以下内容:

# Use a base image with Java 11
FROM openjdk:11-jdk-slim

# Set the working directory
WORKDIR /app

# Copy the jar file from the target directory
COPY target/user-crud-0.0.1-SNAPSHOT.jar app.jar

# Expose port 8080
EXPOSE 8080

# Run the application
ENTRYPOINT ["java", "-jar", "/app/app.jar"]

构建 Docker 镜像

首先,使用 Maven 打包您的应用程序:

./mvnw clean package

然后构建 Docker 镜像:

docker build -t user-crud .

第 6 步:运行 Docker 容器

运行容器

使用以下命令运行 Docker 容器:

docker run -p 8080:8080 user-crud

验证应用程序

访问 http://localhost:8080/api/users 以确保应用程序在 Docker 容器中正确运行。您可以使用curl或Postman等工具来测试CRUD端点。

结论

您已经使用 Spring Boot 成功创建了一个简单的 User CRUD 应用程序,使用 Docker 将其容器化,并验证了其操作。此设置允许您在不同环境中一致地部署和管理应用程序,您可以使用其他功能扩展此示例或将其集成到更大的系统中。
请随时提出您的问题...祝您编码愉快!

更多信息请参考:

  • Spring Boot 文档
  • Docker 文档

以上是使用 Spring Boot 和 Docker 构建用户 CRUD 应用程序的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn