Remarque :
- Ce tutoriel est disponible dans un environnement de laboratoire gratuit fourni par Oracle.
- Il utilise des exemples de valeur pour les informations d'identification, la location et les compartiments Oracle Cloud Infrastructure. A la fin de l'exercice, remplacez ces valeurs par celles propres à votre environnement cloud.
TASK 3 : Créer une application Micronaut dans le code VS
Au cours de cet atelier, vous allez créer une application Micronaut et configurer votre application pour qu'elle communique avec Oracle Autonomous Database.
Le service GraalVM Tools for Micronaut Extension est préinstallé dans le code VS dans le cadre du processus de provisionnement pour gagner du temps. La prise en charge de Micronaut inclut également l'application Micronaut Launch qui vous permet de créer des projets Micronaut via l'interface dans le code VS. En combinaison avec GraalVM Tools for Java Extension, préinstallé en tant que dépendance, vous pouvez exécuter des projets Micronaut sur GraalVM Enterprise et les déboguer directement à partir de VS Code.
Temps estimé : 15 minutes
Contenu de la tâche
Dans cette tâche :
- Créer une application Micronaut
- Configurer l'application Micronaut pour la connexion à l'instance Oracle Autonomous Database
- Configurer les pilotes JDBC Oracle Autonomous Database
- Configurer Flyway pour créer le schéma
- Définir le script de migration SQL
Etape 1 : création d'une application Micronaut
-
Dans la fenêtre VS Code, connectée à un hôte distant, accédez à View, puis à Command Palette (La palette de commandes peut également être ouverte en appuyant sur F1 ou sur la combinaison de touches d'accès rapide Ctrl+Shift+P pour Linux) et recherchez "Micronaut".
-
Sélectionnez Micronaut : Créer un projet Micronaut pour créer un projet Micronaut.
-
Suivez les invites de l'assistant pour configurer le projet :
-
Sélectionnez la dernière version de Micronaut disponible et ne choisissez aucune option avec SNAPSHOT
-
Sélectionnez le type d'application : Application Micronaut
-
Choisissez la dernière version de Java disponible. Au moment de créer cet atelier, il s'agit de GraalVM EE 22.0.0, Java 17.
-
Indiquez le nom du projet : ocidemo
-
Indiquez le nom du package de base : com.example
-
Choisir le langage du projet : Java
-
Ajoutez les fonctionnalités du projet : Database : Micronaut Data JDBC et Database : serveur Oracle Database. Appuyez sur OK.
-
Sélectionnez Maven ou Gradle comme outil de création
-
Choisissez la structure de test : JUnit
-
Choisissez le dossier de destination sur l'ordinateur hôte distant pour enregistrer les fichiers de projet : saisissez /home/opc/ et appuyez sur OK pour confirmer.
Les fichiers de projet Micronaut que vous venez de créer seront ouverts dans l'espace de travail actuel dans VS Code.
-
Etape 2 : configuration de l'application pour la connexion à l'instance Oracle Autonomous Database
Les informations de connexion et les informations d'identification Oracle Cloud Autonomous Database sont stockées dans Oracle Wallet. Avec Micronaut, vous pouvez générer et télécharger automatiquement le portefeuille et configurer la source de données. Pour utiliser la configuration de source de données automatisée à partir du portefeuille, procédez comme suit :
-
Cliquez sur le nom de votre dossier de projet dans le panneau de gauche et ouvrez le fichier
application.yml
soussrc/main/resources/
. -
Remplacez le contenu du fichier par défaut par les données suivantes :
micronaut: application: name: ocidemo datasources: default: ocid: ocid1.autonomousdatabase.oc1... walletPassword: WALLET_PASSWORD username: DATABASE_USERNAME password: DATABASE_PASSWORD
-
Modifiez les paramètres de connexion à la source de données par défaut.
- Retournez dans la fenêtre du navigateur et consultez la console de l'instance Oracle Autonomous Database. Sous Informations sur Autonomous Database > Informations générales, recherchez et copiez la valeur
ocid
de votre instance.
- Revenez au code VS et, dans
application.yml
, à l'OCID dans le champocid
. walletPassword
permet de crypter les clés à l'intérieur du portefeuille. Il peut s'agir de votre choix (il doit comporter au moins huit caractères et inclure au moins une lettre et un caractère numérique ou un caractère spécial).- Les valeurs
username
etpassword
doivent être le nom et le mot de passe que vous avez choisis lors de la création d'un utilisateur de schéma de base de données dans l'exercice précédent.
- Retournez dans la fenêtre du navigateur et consultez la console de l'instance Oracle Autonomous Database. Sous Informations sur Autonomous Database > Informations générales, recherchez et copiez la valeur
REMARQUE : Les fichiers de code VS ne sont pas enregistrés automatiquement. Pour enregistrer les modifications apportées à un fichier particulier, sélectionnez Fichier, puis Enregistrer ou Tout enregistrer pour enregistrer les modifications apportées à un groupe de fichiers. Vous pouvez également saisir
CTLR +S
.
Etape 3 : configuration des pilotes JDBC Oracle Autonomous Database
Vous devez indiquer la version correcte du pilote Oracle Database et les modules requis dans le fichier pom.xml
à la racine du projet.
-
Appliquez Oracle Database BOM 21.1.0.0 ou version ultérieure.
Si vous avez utilisé Maven, ouvrez
pom.xml
à la racine du projet et insérez les éléments suivants entre les sectionsrepositories
etdependencies
:<dependencyManagement> <dependencies> <dependency> <groupId>com.oracle.database.jdbc</groupId> <artifactId>ojdbc-bom</artifactId> <version>21.1.0.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
Si vous avez utilisé Gradle, ouvrez
build.gradle
à la racine du projet et insérez la commande suivante à la fin du blocdependencies
:implementation platform("com.oracle.database.jdbc:ojdbc-bom:21.1.0.0")
-
Ajoutez une dépendance au module
micronaut-oraclecloud-atp
.Si vous avez utilisé Maven, ouvrez
pom.xml
et insérez l'élément suivant dans le blocdependencies
:<dependency> <groupId>io.micronaut.oraclecloud</groupId> <artifactId>micronaut-oraclecloud-atp</artifactId> <version>1.2.1</version> <scope>runtime</scope> </dependency>
Si vous avez utilisé Gradle, ouvrez
build.gradle
et ajoutez les éléments suivants à la fin du blocdependencies
:runtimeOnly("io.micronaut.oraclecloud:micronaut-oraclecloud-atp")
-
Activez la journalisation du SDK OCI.
Si vous avez utilisé Maven, ouvrez
pom.xml
et ajoutez les dépendances suivantes dans le blocdependencies
:<dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.13</version> <scope>runtime</scope> <exclusions> <exclusion> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>jcl-over-slf4j</artifactId> <version>1.7.36</version> <scope>runtime</scope> </dependency>
Si vous avez utilisé Gradle, insérez la configuration suivante juste au-dessus du bloc
dependencies
:configurations.all { resolutionStrategy.dependencySubstitution { substitute(module('commons-logging:commons-logging')) .using(module('org.slf4j:jcl-over-slf4j:1.7.36')) } }
Etape 4 : configurez Flyway pour créer le schéma.
Vous devez ensuite activer la prise en charge d'Open Source Flyway database migration toolkit, qui vous permet de définir des scripts SQL qui gèrent et gèrent votre schéma de base de données et vous permettent de faire évoluer progressivement le schéma avec les nouvelles versions de votre application.
-
Ajoutez une dépendance sur
micronaut-flyway
.Si vous avez utilisé Maven, ouvrez
pom.xml
et insérez l'élément suivant dans le blocdependencies
:<dependency> <groupId>io.micronaut.flyway</groupId> <artifactId>micronaut-flyway</artifactId> <scope>runtime</scope> </dependency>
Si vous avez utilisé Gradle, ouvrez
build.gradle
et ajoutez les éléments suivants à la fin du blocdependencies
:runtimeOnly("io.micronaut.flyway:micronaut-flyway")
-
Passez au fichier
src/main/resources/application.yml
et ajoutez la configuration suivante juste en dessous de la sectiondatasources
à la ligne 10 pour permettre l'exécution de Flyway au démarrage :flyway: datasources: default: enabled: true
-
Ouvrez le fichier
application-test.yml
soussrc/test/resources/
et remplacez le contenu par défaut du fichier par l'entrée suivante pour Flyway, qui contiendra votre configuration de test et définira Flyway pour nettoyer le schéma au démarrage de l'application, afin de garantir l'exécution des tests avec de nouvelles données :flyway: datasources: default: clean-schema: true
REMARQUE : Dans un scénario réel, vous devez configurer une base de données distincte pour l'exécution de vos tests.
Etape 5 : définition du script de migration SQL
L'étape suivante consiste à définir le script de migration SQL qui créera le schéma initial de l'application.
-
Créez le dossier
db/migration
soussrc/main/resources
. Cliquez avec le bouton droit de la souris sursrc/main/resources
pour développer le menu de contenu et sélectionnez Nouveau dossier : -
Créez un fichier SQL. Cliquez avec le bouton droit de la souris sur
src/main/resources/db/migration/
pour développer le menu de contenu et sélectionner Nouveau fichier. Nommez-leV1__create-schema.sql
. -
Ajoutez le code SQL suivant au fichier :
CREATE TABLE "PET" ("ID" VARCHAR(36),"OWNER_ID" NUMBER(19) NOT NULL,"NAME" VARCHAR(255) NOT NULL,"TYPE" VARCHAR(255) NOT NULL); CREATE TABLE "OWNER" ("ID" NUMBER(19) PRIMARY KEY NOT NULL,"AGE" NUMBER(10) NOT NULL,"NAME" VARCHAR(255) NOT NULL); CREATE SEQUENCE "OWNER_SEQ" MINVALUE 1 START WITH 1 NOCACHE NOCYCLE;
Le script SQL ci-dessus crée des tables
owner
etpet
pour stocker les données des propriétaires et de leurs animaux domestiques dans Autonomous Database.
Vous pouvez maintenant passer à la tâche suivante.