dimanche, 28 avril 2024

Quarkus : Premiers pas avec Java natif de Kubernetes

Quarkus est une structure Java open source à pile complète publiée en 2019 par Red Hat. Quarkus est une alternative à Spring (bien qu’il puisse également être incorporé avec Spring), avec quelques fonctions intéressantes à lui tout seul.

Quarkus est créé à partir de zéro pour être « natif du cloud », indiquant qu’il est réglé pour Kubernetes, les plates-formes sans serveur et une variété de bibliothèques comme Apache Kafka (pour le traitement de flux) et JAX-RS (pour les services Web pacifiques). Quarkus est également doté d’un moteur CDI (contextes et injection de dépendance) complet et d’une prise en charge des émissions réactives.

Continuez à lire pour une introduction pratique à Quarkus.

  • Installez l’interface de ligne de commande Quarkus
  • Produire une application Quarkus
  • Découvrir la conception du travail Quarkus
  • Extensions Quarkus
  • Injection de dépendance à Quarkus CDI
  • Réparer le test GreetingResource
  • Ajouter les extensions client REST
  • Java cloud natif

Installer la CLI Quarkus

Quarkus prend en charge Maven et Gradle en tant que wrappers d’outils de développement, mais est également livré avec un outil d’interface de ligne de commande (CLI). Nous allons commencer par configurer la CLI à l’aide de l’outil JBang. Depuis la ligne de commande, exécutez le code du Listing 1.

Listing 1. Installation de Quarkus CLI

// Linux et iOS :
curl -Ls https://sh.jbang .dev|celebration -s – app install– fresh– force quarkus@quarkusio!.?.!// PowerShell: iex « & $(iwr https: app install– fresh– force quarkus@quarkusio « Une fois la commande se termine, en tapant quarkus-variation doit renvoyer un résultat. -quarkus est l’ID de l’artefact et 1.0 est le numéro de variation. L’outil de ligne de commande propose de nombreux choix que vous pouvez utiliser pour configurer les choses. Vous pouvez consulter ces choix en tapant quarkus– assistance.

Vous pouvez obtenir de l’aide avec une commande spécifique en tapant quarkus create app– help. Notez que vous pouvez spécifier des éléments tels que le wrapper d’outil de construction à utiliser. Exécuter l’applicationQuarkus Maintenant, passez au tout nouveau my-quarkus site de répertoire et type quarkus dev. Le mode dev de Quarkus représente une technique cool. Il prend en charge le chargement de code à chaud et vous permet d'exécuter des tests à volonté sans arrêter votre conteneur. C'est pourquoi certaines options de commande vous sont fournies une fois que le conteneur de développement a démarré avec le opportun : Tests en pause Appuyez sur [r] pour reprendre l’évaluation, [o] Basculez la sortie de test, [h] pour plus d’options> Cela signifie que vous peut apporter des modifications au code, y compris l’ajout de tests, puis exécuter les tests avec r. Vous pouvez également modifier les niveaux de journalisation avec h ou arrêter le conteneur avec q. Exécution du mode dev de Quarkus sur un périphérique distant Par défaut, le mode dev de Quarkus n’écoute que sur l’hôte local. Si vous souhaitez écouter sur tous les réseaux, vous pouvez inclure le paramètre hôte : quarkus dev -Dquarkus.http.host =0.0.0.0 Pour développer l'application pour la production, vous utilisez la commande quarkus develop.

Pendant que l'application s'exécute en mode dev, consultez localhost:8080, et vous verrez l'écran de bienvenue, similaire à la figure 1. Figure 1. Quarkus bienvenue IDG Exploration de la conception du projet Quarkus À l'intérieur du tout nouveau site de répertoire d'application le répertoire src, suivant la disposition commune de Maven, avec test pour les tests et primaire pour les fichiers de l'application

. À l'intérieur/src/main se trouvent 3 sites de répertoires :/ src/main/resources, où résident vos fichiers statiques (constitués des pages HTML qui pilotent

vos pages comme src/main/resources/ META-INF/ resources/index.html);/ src/main/java, où se trouvent votre code back-end et votre code middleware ; et/ src/main/docker, où Quarkus a produit pour vous les fichiers Docker par défaut (constitués de Dockerfile.native pour une exécution sans JVM). Toutes les modifications que vous apportez à l'application seront affichées lorsque le navigateur Web sera revitalisé. Vous pouvez ouvrir le fichier src/main/java/com/infoworld/GreetingResource. java et voir un point de terminaison JAX-RS. Si vous personnalisez le message et rechargez localhost:8080/hello, vos modifications seront reflétées. Listing 2. Le package de point de terminaison REST/ hello com.infoworld; importer javax.ws.rs.GET ; importer javax.ws.rs.Path ; importer javax.ws.rs.Produces ; import javax.ws.rs.core.MediaType;@Path("/ hi ")public class GreetingResource Extensions de Quarkus Quarkus possède de nombreuses fonctionnalités qui sont fournies via des extensions qui peuvent être ajoutées à l'aide d'une commande. Pour avoir une idée de ce que Quarkus prend en charge, jetez un œil à ce référentiel Git, qui se compose de plusieurs lots
d'exemples d'utilisation de Quarkus avec la similitude JPA, Kafka, MongoDB, Amazon S3 et

Knatif. Ces exemples sont également utiles comme points de départ lors de la création d'une application Quarkus avec ces innovations (d'où le nom quickstarts). Vous pouvez voir quelles extensions sont installées dans votre application en exécutant quarkus ext ls. Vous verrez qu'actuellement, seul quarkus-resteasy

est configuré. Vous pouvez

obtenir une liste des modules installables proposés avec quarkus ext ls-i. La configuration est effectuée avec la commande quarkus ext add. Injection de dépendances Quarkus CDI Quarkus est livré avec un moteur d'injection de dépendances sur mesure, appelé ArC. ArC est une implémentation partielle de la spécification CDI et possède également ses propres fonctions uniques. En général, le système ArC est plus simple et plus facile à comprendre que le CDI. Voyons comment inclure une classe de service à utiliser par la ressource Relaxing

. Commencez par développer un tout nouveau fichier à l'adresse/src/main/java/com/infoworld/service/MyService.java. Incluez le code vu dans la notation 3. Notation 3. Le package de classe MyService com.infoworld.service ; importer javax.enterprise.context.ApplicationScoped ; import java.util.Random;@ApplicationScoped!.?.!classe publique MyService est une classe très simple avec une seule technique, getRandom(), qui renvoie un entier aléatoire. Il est annoté avec l'annotation de base CDI, @ApplicationScoped, qui le rend facilement accessible au système DI. l'utilise. Ouvrez maintenant le fichier /src/main/java/com/infoworld/GreetingResource. java et personnalisez-la comme

vu dans la notation 4. Listing 4. GreetingResource utilisant le plan MyService com.infoworld; importer javax.ws.rs.GET ; importer javax.ws.rs.Path ;
importer javax.ws.rs.Produces ; importer javax.ws.rs.core.MediaType ; importer javax.inject.Inject; importer
com.infoworld.service.MyService;@Path( "/ salut ") classe publique
GreetingResource @Inject MyService myService ; @GET @Produces( MediaType.TEXT _ PLAIN)public String hey there()

return " Bienvenue dans le créateur. Votre numéro est : "myService.getRandom(); L'élément crucial ici est l'annotation @Inject, qui déclenche le moteur CDI pour satisfaire la recommandation myService avec le bean de ressource que nous avons produit dans le listing 4. Ceci est ensuite utilisé pour générer le nombre aléatoire pour le chemin/hi. Corrigez le test GreetingResource Maintenant, si vous revenez à la ligne de commande

où Quarkus dev s'exécute et tapez r pour réexécuter les tests, vous verrez que le scénario de test pour le point de terminaison RESTEasy échoue.

Réglons cela. Ouvrez test/java/com/infoworld/GreetingResourceTest. Java. Notification, cette
classe utilise plusieurs bibliothèques de filtrage déjà fournies par Quarkus, y compris la bibliothèque RestAssured

, qui facilite le test des points de terminaison Peaceful. Modifiez GreetingResourceTest comme indiqué dans la liste 5. Notant 5. Package GreetingResourceTest mis à jour com.infoworld; import
io.quarkus.test.junit.QuarkusTest
 ; importer org.junit.jupiter.api.Test ; importation corrigée io.restassured.RestAssured.given; import static org.hamcrest.CoreMatchers.containsString;// modifié!.?.!@QuarkusTest!.?.!public class GreetingResourceTest>

provided(). lorsque(). get ( " Comme indiqué dans les commentaires, seules deux lignes sont modifiées. Vous vérifiez simplement l'existence du mot "maker" dans le corps de la réaction

. Maintenant, si vous exécutez les tests avec la commande r, ils réussiront. Ajoutez les extensions client REST Allons un peu plus loin et appelons une API REST externe (l'API Star Wars, alias SWAPI) dans la classe de service. Commencez par ajouter le client quarkus-rest-api en exécutant quarkus ext include quarkus -rest-client. Notez que vous pouvez le faire dans une autre fenêtre pendant que l'application est toujours en cours d'exécution et Quarkus appliquera l'extension. Assez remarquable.

Nous profiterons également de rest-client-jackson extension pour rendre la modélisation

simple des informations. Tapez quarkus ext add rest-client-jackson. Design class

Produisez une classe de conception dans un nouveau répertoire : src/main/java/ com/infoworld/ client/ Person.java. Ce sera un transfert d'informations vraiment basique que Jackson occupera pour nous, comme on le voit dans la liste 6. Liste 6.

Desig individuel n classe groupée com.infoworld.client; importer java.util.List ; importer com.fasterxml.jackson.annotation.JsonIgnoreProperties;@JsonIgnoreProperties( ignoreUnknown=real) public class Individual>public String name;. Notification que nous utilisons @JsonIgnoreProperties afin qu'aucune erreur ne soit générée lorsque des champs existent sur le JSON source qui n'existent pas sur l'objet de conception. Dans le même répertoire,
produit une toute nouvelle

classe de service qui frappera le point de terminaison SWAPI :/ src/main/java/ com/infoworld/client/ SwapiClient.java. Voir le contenu de ce fichier dans le Listing 7. Listing 7. Package SwapiClient.java com.infoworld.client; importer org.eclipse.microprofile.rest.client.inject.RegisterRestClient; importer org.jboss.resteasy.annotations.jaxrs.PathParam; importer org.jboss.resteasy.annotations.jaxrs.QueryParam; importer javax.ws.rs.GET ; importer javax.ws.rs.Path ; importer javax.ws.rs.Produces ; import java.util.Set;@RegisterRestClient!.?.!public interface SwapiClient json ")Individual getById(@PathParam Integer id);

Notification que l'interface utilisateur est inscrite en tant que client de repos avec le @ Annotation RegisterRestClient. La méthode getById est également annotée pour la définir

comme frappante

une technique GET HTTP trouvée comme "/ people/ ", où l'identifiant va être fourni par l'appel à l'approche getById(@PathParam Integer id) . Nous spécifions ici avec exactement les mêmes annotations qui spécifient un point de terminaison relaxant, un client paisible.

Où est la racine du point de terminaison spécifiée ? Ouvrez src/main/resources/ application.properties et incluez les deux lignes vues dans la liste 8. Liste 8. Spécification des propriétés résidentielles ou commerciales du client REST dans application.properties com.infoworld.client.SwapiClient/mp-rest/url=https ://swapi.dev/api!.?.!com.infoworld.client.SwapiClient/mp-rest/scope=javax.inject.Singleton Plus de détails sur ces propriétés et comment elles sont câblées dans l'application sont facilement disponibles ici. Maintenant, mettez à jour la GreetingResource pour

utiliser le tout nouveau service client, comme dans la liste 9. Notant 9. GreetingResource en utilisant le plan client REST com.infoworld ; importer javax.ws.rs.GET ; importer javax.ws.rs.Path ; importer javax.ws.rs.Produces ; importer javax.ws.rs.core.MediaType ; importer javax.inject.Inject; importer com.infoworld.service.MyService ; importer com.infoworld.client.SwapiClient ; importer org.eclipse.microprofile.rest.client.inject.RestClient ; import org.jboss.resteasy.annotations.jaxrs.PathParam;@Path("/ salut ")classe publique GreetingResource @Inject MyService myService; @Inject @RestClient SwapiClient swapiClient ;
nous injectons le client restant dans la variable swapiClient et appelons l'approche getById avec un identifiant aléatoire du service de nombres aléatoires que vous avez produit précédemment. Maintenant, vous allez obtenir une action de localhost:8080/ hé là qui va quelque chose comme ça : Salut, votre personnage de Star Wars est : Ric Olié Cloud-native Java C'était une visite éclair d'une partie de la puissance de Quarkus, mais juste le début . Quarkus est une option tout à fait légitime pour Spring et continue de voir un développement actif, avec des fonctionnalités inédites et utiles ajoutées régulièrement. La prochaine fois que vous chercherez une structure Java, pensez à Quarkus. Tout le code de ce tutoriel est disponible ici.

Toute l'actualité en temps réel, est sur L'Entrepreneur

LAISSER UN COMMENTAIRE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici

xnxx sex download russianporntrends.com hardxxxpics saboten campus freehentai4u.com read manga porn rakhi sex photo ganstagirls.com nani sex video xxx indian girl video download elporno.mobi tamilauntycom bf hd video bf hd video porn555.me anyporn hd tamil beach sex erolenta.com xxx sex boy to boy bustyboobs pakistanixxxx.com nude sexy videos desi sex xvideos.com tubaka.mobi justdesi in free naked dance vegasmpegs.mobi eva grover desi ass lick eroanal.net 69 xvideo 4k xnxx thefuckingtube.com xxii roman numerals translation tamil nayanthara sex sexozavr.com indian porn videos tumblr كلبات سكس porn-arab.net نيك ف الكس y3df comics popsexy.net akhil wife hentai ahri wowhentai.net the sarashina bloodline