Nota:

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:

Passo 1: crea una nuova applicazione Micronaut

  1. 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".

  2. Selezionare Micronaut: Crea progetto Micronaut per creare un progetto Micronaut.

  3. 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:

  1. Fare clic sul nome della cartella del progetto nel pannello di sinistra e aprire il file application.yml in src/main/resources/.

  2. 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
    
  3. 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.

    ID istanza di Oracle Autonomous Database

    • Tornare al codice VS e, in application.yml, all'OCID nel campo ocid.
    • 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 e password devono essere il nome e la password scelti durante la creazione di un utente dello schema di database nel laboratorio precedente.

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.

  1. 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 sezioni repositories e dependencies.

    <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 blocco dependencies:

    implementation platform("com.oracle.database.jdbc:ojdbc-bom:21.1.0.0")
    
  2. Aggiungere una dipendenza dal modulo micronaut-oraclecloud-atp.

    Se si utilizza Maven, aprire pom.xml e inserire quanto segue nel blocco dependencies:

    <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 blocco dependencies:

    runtimeOnly("io.micronaut.oraclecloud:micronaut-oraclecloud-atp")
    
  3. Abilitare il log SDK OCI.

    Se si utilizza Maven, aprire pom.xml e aggiungere le seguenti dipendenze all'interno del blocco dependencies:

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

  1. Aggiungere una dipendenza su micronaut-flyway.

    Se si utilizza Maven, aprire pom.xml e inserire quanto segue nel blocco dependencies:

    <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 blocco dependencies:

    runtimeOnly("io.micronaut.flyway:micronaut-flyway")
    
  2. Passare al file src/main/resources/application.yml e aggiungere la seguente configurazione proprio sotto la sezione datasources alla riga 10 per abilitare Flyway all'avvio:

    flyway:
      datasources:
        default:
          enabled: true
    
  3. Aprire il file application-test.yml in src/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.

  1. Creare la cartella db/migration in src/main/resources. Fare clic con il pulsante destro del mouse su src/main/resources per espandere il menu del contenuto e selezionare Nuova cartella.

    Crea una nuova cartella nel codice VS

  2. 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 a V1__create-schema.sql.

  3. 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 e pet per memorizzare i dati per i proprietari e i relativi animali domestici in Autonomous Database.

È ora possibile passare al task successivo.

Per saperne di più