ホームページ >Java >&#&チュートリアル >Spring Boot または .NET 開発者パートの開始 Spring Boot での製品エンティティ CRUD アプリケーションの構築

Spring Boot または .NET 開発者パートの開始 Spring Boot での製品エンティティ CRUD アプリケーションの構築

DDD
DDDオリジナル
2025-01-05 15:13:40590ブラウズ

Getting Started with Spring Boot or .NET Developers Part Building a Product Entity CRUD Application in Spring Boot

前回の投稿で Spring Boot 3 の基本を説明した後、Product エンティティの CRUD (作成、読み取り、更新、削除) 操作を実装してさらに詳しく見てみましょう。その過程で、Java エコシステムに移行する .NET 開発者のギャップを埋めるために、Spring Boot のコア概念とそれに相当する .NET Core の概念を比較します。

プロジェクトのセットアップ

開始する前に、次の依存関係を備えた Spring Boot プロジェクトの準備ができていることを確認してください。

  • Spring Web: REST API の構築用。
  • Spring Data JPA: データベース対話用。
  • PostgreSQL ドライバー: PostgreSQL データベースに接続するため。

Docker を使用して PostgreSQL をローカルで実行する

PostgreSQL をローカルで実行するには、Docker を使用してインスタンスをすばやくセットアップします。

  1. PostgreSQL イメージをプルします:

    docker pull postgres
    
  2. PostgreSQL コンテナを実行します:

    docker run --name postgres-db -e POSTGRES_PASSWORD=yourpassword -e POSTGRES_USER=yourusername -e POSTGRES_DB=mydatabase -p 5432:5432 -d postgres
    

    yourusername、yourpassword、mydatabase を希望のユーザー名、パスワード、データベース名に置き換えます。

  3. データベースが実行されていることを確認します:

    docker ps
    
  4. データベース クライアント (DBeaver、pgAdmin、psql など) を使用して localhost:5432 に接続し、データベースにアクセスできることを確認します。

pom.xml ファイルを更新します

Maven を使用している場合は、pom.xml ファイルに次の依存関係を含めて、必要なライブラリがすべて利用可能であることを確認します。

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
        <groupId>org.postgresql</groupId>
        <artifactId>postgresql</artifactId>
        <version>42.5.0</version>
    </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>

.NET Core との比較:
.NET Core では、パッケージ参照は csproj ファイルを使用して管理されます。 PostgreSQL を利用した Web API の同等の依存関係は次のようになります:

<ItemGroup>
  <PackageReference Include="Microsoft.AspNetCore.App" />
  <PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="6.0.0" />
</ItemGroup>

PostgreSQL データベースを構成する

PostgreSQL データベースに接続するには、application.yml ファイルを更新します。

spring:
  datasource:
    url: jdbc:postgresql://localhost:5432/mydatabase
    username: yourusername
    password: yourpassword
  jpa:
    properties:
      hibernate:
        dialect: org.hibernate.dialect.PostgreSQLDialect
    hibernate:
      ddl-auto: update

mydatabase、yourusername、および yourpassword を実際の PostgreSQL データベースの詳細に置き換えます。 ddl-auto=update 設定により、Hibernate はエンティティ定義に基づいてテーブルを自動的に作成または更新します。

.NET Core との比較:
.NET Core では、同様の構成が appsettings.json:
に存在します。

{
  "ConnectionStrings": {
    "DefaultConnection": "Host=localhost;Database=mydatabase;Username=yourusername;Password=yourpassword"
  },
  "EntityFramework": {
    "MigrationsAssembly": "YourProjectName"
  }
}

プロジェクト構造の概要

Spring Boot プロジェクトはコードをパッケージに編成します:

  • entity: データ モデルが含まれます。
  • リポジトリ: データベース操作用のインターフェース。
  • コントローラー: REST エンドポイント。
  • サービス (オプション): ビジネス ロジック。

この構造は、.NET Core プロジェクトの一般的なレイヤー (モデル、データ/リポジトリ、コントローラー、サービス) に似ています。

ステップ 1: 製品エンティティを定義する

Spring Boot では、Entity Framework Core のモデルと同様に、エンティティはデータベース テーブルを表します。 @Entity や @Id などのアノテーションを使用して、クラスをテーブルにマップします:

docker pull postgres

.NET Core 相当

docker run --name postgres-db -e POSTGRES_PASSWORD=yourpassword -e POSTGRES_USER=yourusername -e POSTGRES_DB=mydatabase -p 5432:5432 -d postgres

ステップ 2: リポジトリを作成する

Spring Boot では、リポジトリは JpaRepository を拡張したインターフェイスです。これらは、EF Core の DbContext に似た組み込みの CRUD 操作を提供します。

docker ps

.NET Core 相当

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
        <groupId>org.postgresql</groupId>
        <artifactId>postgresql</artifactId>
        <version>42.5.0</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

ステップ 3: サービス層を実装する (オプション)

サービス層はビジネス ロジックを処理します。オプションではありますが、大規模なアプリケーションではこれをお勧めします。

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

.NET Core 相当

<ItemGroup>
  <PackageReference Include="Microsoft.AspNetCore.App" />
  <PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="6.0.0" />
</ItemGroup>

ステップ 4: コントローラーを構築する

コントローラーは、ASP.NET Core と同様に、HTTP リクエストを処理します。

spring:
  datasource:
    url: jdbc:postgresql://localhost:5432/mydatabase
    username: yourusername
    password: yourpassword
  jpa:
    properties:
      hibernate:
        dialect: org.hibernate.dialect.PostgreSQLDialect
    hibernate:
      ddl-auto: update

.NET Core 相当

{
  "ConnectionStrings": {
    "DefaultConnection": "Host=localhost;Database=mydatabase;Username=yourusername;Password=yourpassword"
  },
  "EntityFramework": {
    "MigrationsAssembly": "YourProjectName"
  }
}

ステップ 5: API をテストする

Postman や cURL などのツールを使用してアプリケーションを実行し、エンドポイントをテストします。 PostgreSQL データベースが実行中であり、適切に構成されていることを確認してください。

アプリケーションが起動して実行されたら、Postman または cURL を使用して CRUD エンドポイントをテストします。 PostgreSQL が実行中であり、正しく構成されていることを確認してください。

Postman を使用したエンドポイントのテスト:

  • GET /api/products: すべての製品を取得します。
  • GET /api/products/{id}: ID によって単一の製品を取得します。
  • POST /api/products: 新しい製品を作成します。
  • DELETE /api/products/{id}: ID で製品を削除します。

主な比較

Feature Spring Boot 3 .NET Core
Dependency Injection Built-in with @Autowired or constructor injection Built-in with AddScoped, AddSingleton
ORM Tool Spring Data JPA Entity Framework Core
Routing @RequestMapping, @GetMapping [Route], [HttpGet]
Middleware Spring Interceptors ASP.NET Middleware
Response Handling ResponseEntity IActionResult

結論

Spring Boot での CRUD アプリケーションの作成は、特に .NET Core に精通している人にとっては簡単です。依存関係注入、ORM、および RESTful API の原則は、どちらのエコシステムでも似ています。このガイドは始まりにすぎません。今後の投稿では、Lombok の統合、Swagger/OpenAPI、検証、エラー処理、データベースの移行について説明します。乞うご期待!

コーディングを楽しんでください!


参考文献

  1. Spring Boot ドキュメント: https://spring.io/projects/spring-boot
  2. PostgreSQL ドキュメント: https://www.postgresql.org/docs/
  3. Spring Data JPA ドキュメント: https://spring.io/projects/spring-data-jpa
  4. .NET Core ドキュメント: https://docs.microsoft.com/en-us/aspnet/core/?view=aspnetcore-7.0

以上がSpring Boot または .NET 開発者パートの開始 Spring Boot での製品エンティティ CRUD アプリケーションの構築の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。