recherche
MaisonJavajavaDidacticielPremiers pas avec Spring Boot ou .NET Developers Part Création d'une application CRUD d'entité de produit dans Spring Boot

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

Après avoir exploré les bases de Spring Boot 3 dans l'article précédent, approfondissons en implémentant une opération CRUD (Créer, Lire, Mettre à jour, Supprimer) d'entité Produit. En cours de route, nous comparerons les concepts de base de Spring Boot avec leurs homologues .NET Core pour aider à combler le fossé entre les développeurs .NET en transition vers l'écosystème Java.

Mise en place du projet

Avant de commencer, assurez-vous d'avoir un projet Spring Boot prêt avec les dépendances suivantes :

  • Spring Web : pour créer des API REST.
  • Spring Data JPA : pour les interactions avec la base de données.
  • Pilote PostgreSQL : Pour se connecter à une base de données PostgreSQL.

Exécuter PostgreSQL localement à l'aide de Docker

Pour exécuter PostgreSQL localement, utilisez Docker pour configurer rapidement une instance :

  1. Extraire l'image PostgreSQL :

    docker pull postgres
    
  2. Exécutez un conteneur PostgreSQL :

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

    Remplacez votre nom d'utilisateur, votre mot de passe et ma base de données par le nom d'utilisateur, le mot de passe et le nom de la base de données souhaités.

  3. Vérifiez que la base de données est en cours d'exécution :

    docker ps
    
  4. Utilisez un client de base de données (par exemple, DBeaver, pgAdmin ou psql) pour vous connecter à localhost:5432 et vérifiez que votre base de données est accessible.

Mettre à jour le fichier pom.xml

Si vous utilisez Maven, incluez les dépendances suivantes dans votre fichier pom.xml pour vous assurer que toutes les bibliothèques nécessaires sont disponibles :

<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>

Assurez-vous également que le plugin suivant est inclus pour créer le projet :

<build>
    <plugins>
        <plugin>
            <groupid>org.springframework.boot</groupid>
            <artifactid>spring-boot-maven-plugin</artifactid>
        </plugin>
    </plugins>
</build>

Comparaison avec .NET Core :
Dans .NET Core, les références de packages sont gérées à l’aide du fichier csproj. Les dépendances équivalentes pour une API Web basée sur PostgreSQL pourraient ressembler à ceci :

<itemgroup>
  <packagereference include="Microsoft.AspNetCore.App"></packagereference>
  <packagereference include="Npgsql.EntityFrameworkCore.PostgreSQL" version="6.0.0"></packagereference>
</itemgroup>

Configurer la base de données PostgreSQL

Mettez à jour votre fichier application.yml pour vous connecter à une base de données 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

Remplacez ma base de données, votre nom d'utilisateur et votre mot de passe par les détails réels de votre base de données PostgreSQL. Le paramètre ddl-auto=update garantit qu'Hibernate crée ou met à jour automatiquement les tables en fonction des définitions de vos entités.

Comparaison avec .NET Core :
Dans .NET Core, des configurations similaires résideraient dans appsettings.json :

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

Aperçu de la structure du projet

Les projets Spring Boot organisent le code en packages :

  • entité : contient des modèles de données.
  • référentiel : Interfaces pour les opérations de base de données.
  • contrôleur : points de terminaison REST.
  • service (facultatif) : Logique métier.

Cette structure est similaire aux couches typiques d'un projet .NET Core : modèles, données/dépôts, contrôleurs et services.

Étape 1 : Définir l'entité produit

Dans Spring Boot, les entités représentent des tables de base de données, similaires aux modèles dans Entity Framework Core. Utilisez des annotations telles que @Entity et @Id pour mapper la classe à une table :

docker pull postgres

Équivalent .NET Core

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

Étape 2 : Créer un référentiel

Dans Spring Boot, les référentiels sont des interfaces étendant JpaRepository. Ils fournissent des opérations CRUD intégrées, semblables à DbContext dans EF Core.

docker ps

Équivalent .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>

Étape 3 : implémenter une couche de service (facultatif)

La couche de service gère la logique métier. Bien que facultatif, il s’agit d’une bonne pratique pour les applications plus volumineuses.

<build>
    <plugins>
        <plugin>
            <groupid>org.springframework.boot</groupid>
            <artifactid>spring-boot-maven-plugin</artifactid>
        </plugin>
    </plugins>
</build>

Équivalent .NET Core

<itemgroup>
  <packagereference include="Microsoft.AspNetCore.App"></packagereference>
  <packagereference include="Npgsql.EntityFrameworkCore.PostgreSQL" version="6.0.0"></packagereference>
</itemgroup>

Étape 4 : Construire le contrôleur

Les contrôleurs gèrent les requêtes HTTP, tout comme dans 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

Équivalent .NET Core

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

Étape 5 : tester votre API

Exécutez votre application et testez les points de terminaison à l'aide d'outils comme Postman ou cURL. Assurez-vous que votre base de données PostgreSQL est en cours d'exécution et correctement configurée.

Une fois l'application opérationnelle, testez les points de terminaison CRUD avec Postman ou cURL. Assurez-vous que PostgreSQL est en cours d'exécution et correctement configuré.

Test des points de terminaison avec Postman :

  • GET /api/products : récupère tous les produits.
  • GET /api/products/{id} : récupère un seul produit par ID.
  • POST /api/products : Créer un nouveau produit.
  • DELETE /api/products/{id} : Supprimer un produit par ID.

Comparaisons clés

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

Conclusion

Créer une application CRUD dans Spring Boot est simple, en particulier pour ceux qui connaissent .NET Core. Les principes de l'injection de dépendances, de l'ORM et des API RESTful sont similaires dans les deux écosystèmes. Ce guide n'est qu'un début : les prochains articles couvriront l'intégration de Lombok, Swagger/OpenAPI, la validation, la gestion des erreurs et les migrations de bases de données. Restez à l'écoute !

Bon codage !


Références

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Performances JVM vs autres languesPerformances JVM vs autres languesMay 14, 2025 am 12:16 AM

Jvm'sperformance estcompatititivewithotherruntimes, offrant une élaboration de personnes, la sécurité et la productivité.1) jvmusjitcompilationfordynamicoptimizations.2) c offrant une performance de Nation

Indépendance de la plate-forme Java: exemples d'utilisationIndépendance de la plate-forme Java: exemples d'utilisationMay 14, 2025 am 12:14 AM

JavaachievesPlatformIndependencethroughthejavirtualmachine (jvm), permettant de codétorunonanyplatformwithajvm.1) codeiscompiledIntoBytecode, notmachine-specificcode.2) bytecodeisinterpretedythejvm

Architecture JVM: une plongée profonde dans la machine virtuelle JavaArchitecture JVM: une plongée profonde dans la machine virtuelle JavaMay 14, 2025 am 12:12 AM

ThejvMisanabstractComputingMachinecrucialForrunningJavapRogramsDuetOtsPlatform-IndependentArchitecture.

JVM: JVM est-il lié au système d'exploitation?JVM: JVM est-il lié au système d'exploitation?May 14, 2025 am 12:11 AM

Jvmhasacloselalationhipswiththeosasittranslatejavabytecodeintomachine-spécificifiCinstructions, gasmemory et handlesgarbagecollection.

Java: Écrivez une fois, courez n'importe où (WORA) - une plongée profonde dans l'indépendance de la plate-formeJava: Écrivez une fois, courez n'importe où (WORA) - une plongée profonde dans l'indépendance de la plate-formeMay 14, 2025 am 12:05 AM

L'implémentation Java "Écrire une fois, exécuter partout" est compilée en bytecode et s'exécute sur une machine virtuelle Java (JVM). 1) Écrivez du code Java et compilez-le en bytecode. 2) ByteCode s'exécute sur n'importe quelle plate-forme avec JVM installé. 3) Utilisez l'interface native Java (JNI) pour gérer les fonctions spécifiques à la plate-forme. Malgré des défis tels que la cohérence JVM et l'utilisation de bibliothèques spécifiques à la plate-forme, WORA améliore considérablement l'efficacité du développement et la flexibilité du déploiement.

Indépendance de la plate-forme Java: compatibilité avec différents SGIndépendance de la plate-forme Java: compatibilité avec différents SGMay 13, 2025 am 12:11 AM

JavaachievesPlatformIndependencethRoughthejavirtualmachine (JVM), permettant à la codétorunondiffférente de système

Quelles fonctionnalités rendent Java encore puissantQuelles fonctionnalités rendent Java encore puissantMay 13, 2025 am 12:05 AM

JavaispoWerfuetOitsPlatformIndependence, objet-orientednature, richstandardLibrary, performanceCapabilities et StrongSecurityFeatures.1) Platform IndependenenceSAplicationStorunonanyDevicesupportingJava.2)

Top Fonctionnalités Java: un guide complet pour les développeursTop Fonctionnalités Java: un guide complet pour les développeursMay 13, 2025 am 12:04 AM

Les fonctions Java supérieures incluent: 1) la programmation orientée objet, la prise en charge du polymorphisme, l'amélioration de la flexibilité du code et la maintenabilité; 2) Mécanisme de gestion des exceptions, améliorant la robustesse du code à travers des blocs de capture-effort finalement; 3) Collection des ordures, simplification de la gestion de la mémoire; 4) génériques, améliorant la sécurité de type; 5) Expressions Ambda et programmation fonctionnelle pour rendre le code plus concis et expressif; 6) Bibliothèques standard riches, fournissant des structures de données optimisées et des algorithmes.

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

<🎜>: Bubble Gum Simulator Infinity - Comment obtenir et utiliser les clés royales
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
Nordhold: Système de fusion, expliqué
4 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Comment déverrouiller le grappin
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

Listes Sec

Listes Sec

SecLists est le compagnon ultime du testeur de sécurité. Il s'agit d'une collection de différents types de listes fréquemment utilisées lors des évaluations de sécurité, le tout en un seul endroit. SecLists contribue à rendre les tests de sécurité plus efficaces et productifs en fournissant facilement toutes les listes dont un testeur de sécurité pourrait avoir besoin. Les types de listes incluent les noms d'utilisateur, les mots de passe, les URL, les charges utiles floues, les modèles de données sensibles, les shells Web, etc. Le testeur peut simplement extraire ce référentiel sur une nouvelle machine de test et il aura accès à tous les types de listes dont il a besoin.

MantisBT

MantisBT

Mantis est un outil Web de suivi des défauts facile à déployer, conçu pour faciliter le suivi des défauts des produits. Cela nécessite PHP, MySQL et un serveur Web. Découvrez nos services de démonstration et d'hébergement.

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Puissant environnement de développement intégré PHP

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser