Simplifiez la mise en œuvre de la persistance Java avec Kotlin sur Quarkus


  • FrançaisFrançais


  • Pendant des décennies, les développeurs ont eu du mal à optimiser la mise en œuvre de la couche de persistance en termes de stockage des données métier, de récupération rapide des données pertinentes et, surtout, de simplification de la logique des transactions de données, quels que soient les langages de programmation.

    Heureusement, ce défi a déclenché l’invention d’écosystèmes Java dans lesquels les développeurs peuvent implémenter l’API Java Persistence (JPA). Par exemple, Hibernate Object Relational Mapper (ORM) avec Panache est le framework standard pour la mise en œuvre de JPA dans l’écosystème Java.

    Explorez le cloud open source

    Kotlin est un langage de programmation conçu pour exécuter des applications métier avec plusieurs langages de programmation au-dessus de Java Virtual Machine (JVM) pour l’implémentation de la persistance Java. Mais les développeurs Java ont encore du mal à rattraper la nouvelle syntaxe et les API JPA de Kotlin.

    Cet article explique comment Quarkus permet aux développeurs d’implémenter plus facilement des applications Kotlin via l’extension Quarkus Hibernate ORM Panache Kotlin.

    Créer un nouveau projet Hibernate ORM Kotlin à l’aide de Quarkus CLI

    Tout d’abord, créez un nouveau projet Maven à l’aide de l’outil de ligne de commande Quarkus (CLI). La commande suivante ajoutera des extensions Quarkus pour activer Hibernate ORM Panache Kotlin et PostgreSQL JDBC extensions :

    $ quarkus create app hibernate-kotlin-example \
     -x jdbc-postgresql, hibernate-orm-panache-kotlin

    La sortie devrait ressembler à ceci :

    ...
    <[SUCCESS] ✅ quarkus project has been successfully generated in:
    --> /Users/danieloh/Downloads/demo/hibernate-kotlin-example
    ...

    Créer une nouvelle entité et un référentiel

    Hibernate ORM with Panache permet aux développeurs de gérer des entités avec des modèles d’enregistrement actifs avec les avantages suivants :

    • Génération automatique d’identifiants
    • Pas besoin de getters/setters
    • Méthodes statiques super utiles pour l’accès telles que listAll() et find()
    • Pas besoin de requêtes personnalisées pour les opérations de base (par exemple Person.find (“nom”, “daniel”))

    Kotlin ne prend pas en charge l’ORM Hibernate avec Panache de la même manière que Java. Au lieu de cela, Quarkus permet aux développeurs d’intégrer ces fonctionnalités dans Kotlin en utilisant le companion objet, comme illustré ci-dessous :

    @Entity(name = "Person")
    class Person : PanacheEntity() {
    lateinit var name: String
    }

    Voici un exemple simple de la façon dont les développeurs peuvent implémenter PanacheRepository pour accéder à l’entité :

    @ApplicationScoped
    class PersonRepository: PanacheRepository<Person> {
    fun findByName(name: String) = find("name", name).firstResult()
    }

    Hyper simple ! Je vais maintenant vous montrer comment implémenter des ressources pour accéder aux données par les API RESTful.

    Créer une ressource pour gérer les API RESTful

    Quarkus prend entièrement en charge l’injection de contexte et de dépendance (CDI), qui permet aux développeurs d’injecter PersonRepository pour accéder aux données (par exemple, findByName(name)) dans les ressources. Par exemple:

    @Inject
    lateinit var personRepository: PersonRepository

    @GET
    @Produces(MediaType.TEXT_PLAIN)
    @Path("/{name}")
    fun greeting(@PathParam("name") name: String): String {
    return "Hello ${personRepository.findByName(name)?.name}"
    }

    Exécuter et tester l’application

    Comme toujours, exécutez votre application Quarkus en mode développeur :

    $ cd hibernate-kotlin-example
    $ quarkus dev

    La sortie devrait ressembler à ceci :

    ...
    INFO [io.quarkus] (Quarkus Main Thread) Profile dev activated. \
    Live Coding activated.
    INFO [io.quarkus] (Quarkus Main Thread) \
    Installed features: [agroal, cdi, hibernate-orm, \
    hibernate-orm-panache-kotlin, jdbc-postgresql, \
    kotlin, narayana-jta, resteasy, smallrye-context-propagation, vertx]

    --
    Tests paused
    Press [r] to resume testing, [o] Toggle test output, \
    [:] for the terminal, [h] for more options>

    Les services Quarkus Dev mettent automatiquement en place un conteneur de base de données pertinent lorsque vous exécutez un environnement d’exécution de conteneur (par exemple, Docker ou Podman) et ajoutez une extension de base de données. Dans cet exemple, j’ai déjà ajouté le jdbc-postgresql afin qu’un conteneur PostgreSQL s’exécute automatiquement lorsque le mode Quarkus Dev démarre. Trouvez la solution dans mon Référentiel GitHub.

    Accéder à l’API RESTful (/hello) pour récupérer les données par le name paramètre. Exécutez ce qui suit curl ligne de commande dans votre terminal local :

    & curl localhost:8080/hello/Daniel

    La sortie devrait ressembler à ceci :

    Hello Daniel

    Conclusion

    Il s’agit d’une explication de base de la manière dont Quarkus permet aux développeurs de simplifier la mise en œuvre de JPA à l’aide des API de programmation Kotlin pour les applications Java réactives. Les développeurs peuvent également bénéficier de meilleures expériences de développement, telles que les services de développement et le codage en direct, tout en continuant à développer avec la programmation Kotlin dans Quarkus. Pour plus d’informations sur Quarkus, visitez le Site Web de Quarkus.

    Source

    La Rédaction

    L'équipe rédactionnnelle du site

    Pour contacter personnellement le taulier :

    Laisser un commentaire

    Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

    Copy code