Nota:
- Questa esercitazione è disponibile in un ambiente di laboratorio gratuito fornito da Oracle.
- Utilizza valori di esempio per le credenziali, la tenancy e i compartimenti Oracle Cloud Infrastructure. Al termine del laboratorio, sostituire questi valori con quelli specifici del tuo ambiente cloud.
TASK 3: creazione di un'applicazione Micronaut in codice VS
In questo laboratorio dovrai creare un'applicazione Micronaut e configurare la tua applicazione per comunicare con Oracle Autonomous Database.
L'GraalVM Tools for Micronaut Extension è preinstallato nel codice VS come parte del processo di provisioning per risparmiare tempo. Il supporto Micronaut include anche l'applicazione Micronaut Launch che consente di creare progetti Micronaut tramite l'interfaccia all'interno del codice VS. In combinazione con gli Strumenti GraalVM per Java Extension, preinstallati come dipendenza, è possibile eseguire i progetti Micronaut su GraalVM Enterprise ed eseguirne il debug direttamente dal codice VS.
Tempo stimato: 15 minuti
Contenuto task
In questo task sarà possibile:
- Creare una nuova applicazione Micronaut
- Configura l'applicazione Micronaut per la connessione all'istanza di Oracle Autonomous Database
- Configurare i driver JDBC di Oracle Autonomous Database
- Configurare Flyway per creare lo schema
- Definire lo script di migrazione SQL
Passo 1: crea una nuova applicazione Micronaut
-
Nella finestra Codice VS, connessa a un host remoto, andare a Visualizza, quindi a Tavolozza comandi (la tavolozza dei comandi può essere aperta anche premendo F1 o la combinazione di tasti di scelta rapida Ctrl+Shift+P per Linux) e cercare "Micronaut".
-
Selezionare Micronaut: Crea progetto Micronaut per creare un progetto Micronaut.
-
Seguire i prompt della procedura guidata per configurare il progetto:
-
Selezionare la versione più recente di Micronaut disponibile e non scegliere le opzioni con SNAPSHOT
-
Selezionare il tipo di applicazione: Applicazione Autenticazione.
-
Selezionare la versione Java più recente disponibile. Al momento di creare questo laboratorio, è GraalVM EE 22.0.0, Java 17
-
Fornire il nome del progetto: ocidemo
-
Fornire il nome del pacchetto base: com.example
-
Selezionare la lingua del progetto: Java
-
Aggiungere le funzioni del progetto: Database: Micronaut Data JDBC e Database: Oracle Database Server. Premere OK
-
Selezionare Maven o Gradle come strumento di creazione
-
Selezionare la struttura di test: JUnit
-
Scegliere la cartella di destinazione sul computer host remoto per salvare i file di progetto: digitare /home/opc/ e fare clic su OK per confermare.
I nuovi file di progetto Micronaut creati verranno aperti nell'area di lavoro corrente in Codice VS.
-
Passo 2: configurare l'applicazione per la connessione all'istanza di Oracle Autonomous Database
Le informazioni di connessione e le credenziali di Autonomous Database di Oracle Cloud vengono memorizzate in Oracle Wallet. Con Micronaut è possibile generare e scaricare automaticamente il wallet e configurare l'origine dati. Completare i passaggi successivi per utilizzare la configurazione automatizzata dell'origine dati dal wallet:
-
Fare clic sul nome della cartella del progetto nel pannello di sinistra e aprire il file
application.yml
insrc/main/resources/
. -
Sostituire il contenuto del file predefinito con i dati seguenti:
micronaut: application: name: ocidemo datasources: default: ocid: ocid1.autonomousdatabase.oc1... walletPassword: WALLET_PASSWORD username: DATABASE_USERNAME password: DATABASE_PASSWORD
-
Modifica le impostazioni di connessione dell'origine dati predefinite.
- Restituire la finestra del browser e la console dell'istanza di Oracle Autonomous Database. In Informazioni sull'Autonomous Database > Informazioni generali, cercare e copiare il valore
ocid
dell'istanza.
- Tornare al codice VS e, in
application.yml
, all'OCID nel campoocid
. - Il file
walletPassword
deve cifrare le chiavi all'interno del wallet e può essere scelta qualsiasi (deve essere composta da almeno otto caratteri e deve includere almeno una lettera e un carattere numerico o un carattere speciale). - I valori
username
epassword
devono essere il nome e la password scelti durante la creazione di un utente dello schema di database nel laboratorio precedente.
- Restituire la finestra del browser e la console dell'istanza di Oracle Autonomous Database. In Informazioni sull'Autonomous Database > Informazioni generali, cercare e copiare il valore
NOTA: nei file Codice VS non vengono salvati automaticamente. Per salvare le modifiche apportate a un determinato file, andare a File, quindi a Salva o a Salva tutto per salvare le modifiche a un insieme di file. In alternativa, digitare
CTLR +S
.
Passo 3: configurazione dei driver JDBC di Oracle Autonomous Database
È necessario specificare la versione corretta del driver Oracle Database e i moduli richiesti nel file pom.xml
nella radice del progetto.
-
Applicare Oracle Database BOM 21.1.0.0 o versione successiva.
Se si utilizza Maven, aprire
pom.xml
nella radice del progetto e inserire quanto segue tra le sezionirepositories
edependencies
.<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>
Se è stato utilizzato Gradle, aprire
build.gradle
nella radice del progetto e inserire quanto segue alla fine del bloccodependencies
:implementation platform("com.oracle.database.jdbc:ojdbc-bom:21.1.0.0")
-
Aggiungere una dipendenza dal modulo
micronaut-oraclecloud-atp
.Se si utilizza Maven, aprire
pom.xml
e inserire quanto segue nel bloccodependencies
:<dependency> <groupId>io.micronaut.oraclecloud</groupId> <artifactId>micronaut-oraclecloud-atp</artifactId> <version>1.2.1</version> <scope>runtime</scope> </dependency>
Se è stato utilizzato Gradle, aprire
build.gradle
e aggiungere quanto segue alla fine del bloccodependencies
:runtimeOnly("io.micronaut.oraclecloud:micronaut-oraclecloud-atp")
-
Abilitare il log SDK OCI.
Se si utilizza Maven, aprire
pom.xml
e aggiungere le seguenti dipendenze all'interno del bloccodependencies
:<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>
Se è stata utilizzata Gradle, inserire la configurazione seguente sopra il blocco
dependencies
:configurations.all { resolutionStrategy.dependencySubstitution { substitute(module('commons-logging:commons-logging')) .using(module('org.slf4j:jcl-over-slf4j:1.7.36')) } }
Passo 4: configurare Flyway per creare lo schema.
Successivamente, dovrai abilitare il supporto per il kit di migrazione del database standalone open source che ti consente di definire script SQL che gestiscono e versione lo schema del database in modo da poter evolvere gradualmente lo schema insieme alle nuove versioni dell'applicazione.
-
Aggiungere una dipendenza su
micronaut-flyway
.Se si utilizza Maven, aprire
pom.xml
e inserire quanto segue nel bloccodependencies
:<dependency> <groupId>io.micronaut.flyway</groupId> <artifactId>micronaut-flyway</artifactId> <scope>runtime</scope> </dependency>
Se è stato utilizzato Gradle, aprire
build.gradle
e aggiungere quanto segue alla fine del bloccodependencies
:runtimeOnly("io.micronaut.flyway:micronaut-flyway")
-
Passare al file
src/main/resources/application.yml
e aggiungere la seguente configurazione proprio sotto la sezionedatasources
alla riga 10 per abilitare Flyway all'avvio:flyway: datasources: default: enabled: true
-
Aprire il file
application-test.yml
insrc/test/resources/
e sostituire il contenuto predefinito del file con la voce seguente per Flyway, che conterrà la configurazione di test e imposterà Flyway per pulire lo schema all'avvio dell'applicazione, per assicurarsi che i test vengano eseguiti con dati nuovi:flyway: datasources: default: clean-schema: true
NOTA: in uno scenario reale impostare un database separato per eseguire i test.
Passo 5: definizione dello script di migrazione SQL
Il passo successivo consiste nel definire lo script di migrazione SQL che creerà lo schema iniziale dell'applicazione.
-
Creare la cartella
db/migration
insrc/main/resources
. Fare clic con il pulsante destro del mouse susrc/main/resources
per espandere il menu del contenuto e selezionare Nuova cartella. -
Creare un file SQL. Fare clic con il pulsante destro del mouse su
src/main/resources/db/migration/
per espandere il menu del contenuto e selezionare Nuovo file. Assegnare un nome aV1__create-schema.sql
. -
Aggiungere il codice SQL seguente al file:
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;
Lo script SQL precedente creerà le tabelle
owner
epet
per memorizzare i dati per i proprietari e i relativi animali domestici in Autonomous Database.
È ora possibile passare al task successivo.