Hinweis:

TASK 3: Mikronaut-Anwendung in VS-Code erstellen

In dieser Übung erstellen Sie eine Micronaut-Anwendung und konfigurieren Ihre Anwendung für die Kommunikation mit Oracle Autonomous Database.

Die GraalVM Tools for Micronaut Extension wird im VS-Code als Teil des Provisioning-Prozesses vorinstalliert, um Zeit zu sparen. Die Micronaut-Unterstützung beinhaltet auch die Micronaut Launch-Anwendung, mit der Sie Micronaut-Projekte über die Schnittstelle innerhalb von VS Code erstellen können. In Kombination mit den GraalVM Tools for Java Extension, die als Abhängigkeit vorinstalliert ist, können Sie Micronaut-Projekte auf GraalVM Enterprise ausführen und direkt aus VS Code debuggen.

Voraussichtliche Zeit: 15 Minuten

Aufgabeninhalt

In dieser Aufgabe führen Sie folgende Schritte aus:

Schritt 1: Neue Micronaut-Anwendung erstellen

  1. Gehen Sie im VS-Codefenster, das mit einem Remotehost verbunden ist, zu Ansicht, Befehlspalette (Befehlspalette kann auch durch Drücken von F1 oder der Ctrl+Shift+P-Hotkeiltastenkombination für Linux geöffnet werden), und suchen Sie nach "Micronaut".

  2. Wählen Sie Micronaut: Create Micronaut Project, um ein Micronaut-Projekt zu erstellen.

  3. Folgen Sie den Anweisungen des Assistenten, um das Projekt zu konfigurieren:

    • Wählen Sie die neueste verfügbare Micronaut-Version aus, und wählen Sie keine Optionen mit SNAPSHOT aus.

    • Wählen Sie den Anwendungstyp: Micronaut Application.

    • Wählen Sie die neueste verfügbare Java-Version. Zum Zeitpunkt der Erstellung dieser Übung handelt es sich um GraalVM EE 22.0.0, Java 17

    • Geben Sie den Projektnamen ein: ocidemo

    • Geben Sie den Namen des Basispakets an: com.example

    • Sprache des Projekts auswählen: Java

    • Fügen Sie die Features des Projekts hinzu: Datenbank: Micronaut Data JDBC und Datenbank: Oracle Database Server. Klicken Sie auf OK.

    • Wählen Sie Maven oder Gradle als Build-Tool aus

    • Wählen Sie das Test-Framework aus: JUnit

    • Wählen Sie den Zielordner auf dem Remotehostrechner, um die Projektdateien zu speichern: Geben Sie /home/opc/ ein, und klicken Sie zur Bestätigung auf OK.

    Ihre neu erstellten Micronaut-Projektdateien werden im aktuellen Workspace im VS-Code geöffnet.

Schritt 2: Anwendung für die Verbindung zur Oracle Autonomous Database-Instanz konfigurieren

Verbindungsinformationen und Zugangsdaten für Oracle Cloud Autonomous Database werden im Oracle Wallet gespeichert. Mit Micronaut können Sie das Wallet automatisch generieren und herunterladen und die Datenquelle konfigurieren. Führen Sie die nächsten Schritte aus, um die automatische Datenquellenkonfiguration aus dem Wallet zu verwenden:

  1. Klicken Sie im linken Fensterbereich auf den Namen Ihres Projektordners, und öffnen Sie die Datei application.yml unter src/main/resources/.

  2. Ersetzen Sie den Inhalt der Standarddatei durch die folgenden Daten:

    micronaut:
      application:
        name: ocidemo
    datasources:
      default:
        ocid: ocid1.autonomousdatabase.oc1...
        walletPassword: WALLET_PASSWORD
        username: DATABASE_USERNAME 
        password: DATABASE_PASSWORD
    
  3. Ändern Sie die Verbindungseinstellungen der Standarddatenquelle.

    • Kehren Sie zum Browserfenster zurück, und die Oracle Autonomous Database-Instanzkonsole sollte angezeigt werden. Suchen und kopieren Sie unter "Autonomous Database-Informationen > Allgemeine Informationen" den Wert ocid Ihrer Instanz.

    Oracle Autonomous Database-Instanz-ID

    • Kehren Sie zum VS-Code und in application.yml zur OCID im Feld ocid zurück.
    • walletPassword verschlüsselt die Schlüssel im Wallet und kann beliebig gewählt sein (muss mindestens acht Zeichen lang sein und mindestens einen Buchstaben und entweder ein numerisches oder ein Sonderzeichen enthalten).
    • Die Werte username und password müssen der Name und das Kennwort sein, die Sie beim Erstellen eines Datenbankschemabenutzers in der vorherigen Übung ausgewählt haben.

HINWEIS: In VS-Codedateien werden nicht automatisch gespeichert. Um die Änderungen in einer bestimmten Datei zu speichern, gehen Sie zu Datei, Speichern oder Alle speichern, um die Änderungen in einer Reihe von Dateien zu speichern. Alternativ geben Sie CTLR +S ein.

Schritt 3: Oracle Autonomous Database-JDBC-Treiber konfigurieren

Sie müssen die korrekte Version des Oracle Database-Treibers und die erforderlichen Module in der Datei pom.xml in der Root des Projekts angeben.

  1. Wenden Sie Oracle Database BOM 21.1.0.0 oder höher an.

    Wenn Sie Maven verwendet haben, öffnen Sie pom.xml in der Root des Projekts, und fügen Sie Folgendes zwischen den Abschnitten repositories und dependencies ein:

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

    Wenn Sie Gradle verwendet haben, öffnen Sie build.gradle in der Root des Projekts, und fügen Sie Folgendes am Ende des Blocks dependencies ein:

    implementation platform("com.oracle.database.jdbc:ojdbc-bom:21.1.0.0")
    
  2. Fügen Sie eine Abhängigkeit vom Modul micronaut-oraclecloud-atp hinzu.

    Wenn Sie Maven verwendet haben, öffnen Sie pom.xml, und fügen Sie Folgendes in den Block dependencies ein:

    <dependency>
        <groupId>io.micronaut.oraclecloud</groupId>
        <artifactId>micronaut-oraclecloud-atp</artifactId>
        <version>1.2.1</version>
        <scope>runtime</scope>
    </dependency>
    

    Wenn Sie Gradle verwendet haben, öffnen Sie build.gradle, und fügen Sie am Ende des Blocks dependencies Folgendes hinzu:

    runtimeOnly("io.micronaut.oraclecloud:micronaut-oraclecloud-atp")
    
  3. Aktivieren Sie das OCI-SDK-Logging.

    Wenn Sie Maven verwendet haben, öffnen Sie pom.xml, und fügen Sie die folgenden Abhängigkeiten innerhalb des Blocks dependencies hinzu:

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

    Wenn Sie Gradle verwendet haben, fügen Sie die folgende Konfiguration direkt über dem Block dependencies ein:

    configurations.all {
        resolutionStrategy.dependencySubstitution {
            substitute(module('commons-logging:commons-logging'))
                    .using(module('org.slf4j:jcl-over-slf4j:1.7.36'))
        }
    }
    

Schritt 4: Flyway zum Erstellen des Schemas konfigurieren

Als Nächstes müssen Sie die Unterstützung für das Open Source Flyway-Datenbankmigrationstoolkit aktivieren, mit dem Sie SQL-Skripte definieren können, mit denen Sie Ihr Datenbankschema verwalten und versionieren können, damit Sie das Schema schrittweise zusammen mit den neuen Versionen Ihrer Anwendung weiterentwickeln können.

  1. Fügen Sie eine Abhängigkeit von micronaut-flyway hinzu.

    Wenn Sie Maven verwendet haben, öffnen Sie pom.xml, und fügen Sie Folgendes in den Block dependencies ein:

    <dependency>
        <groupId>io.micronaut.flyway</groupId>
        <artifactId>micronaut-flyway</artifactId>
        <scope>runtime</scope>
    </dependency>
    

    Wenn Sie Gradle verwendet haben, öffnen Sie build.gradle, und fügen Sie am Ende des Blocks dependencies Folgendes hinzu:

    runtimeOnly("io.micronaut.flyway:micronaut-flyway")
    
  2. Wechseln Sie zur Datei src/main/resources/application.yml, und fügen Sie direkt unter dem Abschnitt datasources in Zeile 10 die folgende Konfiguration hinzu, damit Flyway beim Hochfahren ausgeführt werden kann:

    flyway:
      datasources:
        default:
          enabled: true
    
  3. Öffnen Sie die Datei application-test.yml unter src/test/resources/, und ersetzen Sie den Dateistandardinhalt durch den folgenden Eintrag für Flyway, der Ihre Testkonfiguration enthält, und setzen Sie Flyway, um das Schema zu bereinigen, wenn die Anwendung startet, um sicherzustellen, dass Tests mit neuen Daten ausgeführt werden:

    flyway:
      datasources:
        default:
          clean-schema: true
    

HINWEIS: In einem realen Szenario würden Sie eine separate Datenbank für die Ausführung Ihrer Tests einrichten.

Schritt 5: SQL-Migrationsskript definieren

Im nächsten Schritt definieren Sie das SQL-Migrationsskript, mit dem das anfängliche Schema der Anwendung erstellt wird.

  1. Erstellen Sie den Ordner db/migration unter src/main/resources. Klicken Sie mit der rechten Maustaste auf src/main/resources, um das Inhaltsmenü einzublenden, und wählen Sie Neuer Ordner aus:

    Neuen Ordner in VS-Code erstellen

  2. Erstellen Sie eine SQL-Datei. Klicken Sie mit der rechten Maustaste auf src/main/resources/db/migration/, um das Inhaltsmenü einzublenden, und wählen Sie Neue Datei aus. Benennen Sie sie V1__create-schema.sql.

  3. Fügen Sie der Datei folgenden SQL-Code hinzu:

    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;
    

    Das oben stehende SQL-Skript erstellt owner- und pet-Tabellen, um Daten für Eigentümer und ihre Haustiere in Autonomous Database zu speichern.

Sie können jetzt mit der nächsten Aufgabe fortfahren.

Weitere Informationen