ホームページ > Java > &#&チュートリアル > Spring Boot と Docker を使用したユーザー CRUD アプリケーションの構築

Spring Boot と Docker を使用したユーザー CRUD アプリケーションの構築

WBOY
リリース: 2024-09-07 06:33:38
オリジナル
790 人が閲覧しました

Building a User CRUD Application with Spring Boot and Docker

導入

Spring Boot は、Spring フレームワークを使用して実稼働対応アプリケーションの開発を簡素化するフレームワークです。アプリケーションを迅速かつ効率的に構築するのに役立つ一連のツールと規約が提供されます。 Spring Boot を使用すると、最小限の構成でスタンドアロンの実稼働グレードのアプリケーションを簡単に作成できます。

このガイドでは、Spring Boot を使用して単純なユーザー CRUD (作成、読み取り、更新、削除) アプリケーションを作成する手順を説明します。また、さまざまな環境間での一貫性を確保するために、アプリケーションを Docker でコンテナ化します。

前提条件

以下がインストールされていることを確認してください:

  • Java JDK 11 以降
  • メイブン
  • ドッカー
  • Git

ステップ 1: 新しい Spring Boot プロジェクトを作成する

プロジェクトを生成する

Spring Initializr を使用して新しい Spring Boot プロジェクトを生成します:

  • プロジェクト: Maven プロジェクト
  • 言語: Java
  • スプリングブート: 3.2.0
  • グループ: com.example
  • アーティファクト: ユーザークルード
  • 依存関係: Spring Web、Spring Data JPA、H2 Database

「生成」をクリックしてプロジェクトをダウンロードし、解凍します。

プロジェクト ディレクトリに移動します

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 コンテナ内で正しく実行されていることを確認します。 CRUD エンドポイントをテストするには、curl や Postman などのツールを使用できます。

結論

Spring Boot を使用して単純なユーザー CRUD アプリケーションを作成し、Docker を使用してコンテナ化し、その動作を確認しました。この設定により、さまざまな環境間でアプリケーションを一貫してデプロイおよび管理できるようになり、追加機能でこの例を拡張したり、より大規模なシステムに統合したりできます。
ご質問がありましたらお気軽にお問い合わせください...ハッピーコーディング!

詳細については、以下を参照してください:

  • Spring Boot ドキュメント
  • Docker ドキュメント

以上がSpring Boot と Docker を使用したユーザー CRUD アプリケーションの構築の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート