首页 >Java >java教程 >Spring Boot 入门或 .NET 开发人员部分在 Spring Boot 中构建产品实体 CRUD 应用程序

Spring Boot 入门或 .NET 开发人员部分在 Spring Boot 中构建产品实体 CRUD 应用程序

DDD
DDD原创
2025-01-05 15:13:40561浏览

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

在上一篇文章中探索了 Spring Boot 3 的基础知识后,让我们通过实现 Product 实体 CRUD(创建、读取、更新、删除)操作来更深入地了解。在此过程中,我们将比较核心 Spring Boot 概念与 .NET Core 对应概念,以帮助弥合 .NET 开发人员过渡到 Java 生态系统的差距。

设置项目

开始之前,请确保您已准备好一个具有以下依赖项的 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
    

    将您的用户名、您的密码和 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 数据库

更新您的 application.yml 文件以连接到 PostgreSQL 数据库:

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 项目将代码组织到包中:

  • 实体:包含数据模型。
  • repository:数据库操作的接口。
  • 控制器: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 的接口。它们提供内置的 CRUD 操作,类似于 EF Core 中的 DbContext。

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 步:构建控制器

控制器处理 HTTP 请求,就像在 ASP.NET Core 中一样。

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中文网其他相关文章!

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