Nota:

TAREA 3: Creación de una aplicación Micronaut en código VS

En este laboratorio, creará una aplicación Micronaut y configurará su aplicación para comunicarse con Oracle Autonomous Database.

GraalVM Tools for Micronaut Extension está preinstalado en el código de VS como parte del proceso de aprovisionamiento para ahorrar tiempo. El soporte de Micronaut también incluye la aplicación Lanzamiento de Micronaut que permite crear proyectos de Micronaut a través de la interfaz dentro del código de VS. En combinación con las Herramientas de GraalVM para Java Extension, que está preinstalado como dependencia, puede ejecutar proyectos de Micronaut en GraalVM Enterprise y depurarlos directamente desde VS Code.

Tiempo estimado: 15 minutos

Contenido de tarea

En esta tarea:

Paso 1: Crear una nueva aplicación Micronaut

  1. En la ventana Código de VS, conectada a un host remoto, vaya a Ver y, a continuación, a Paleta de comandos (la paleta de comandos también se puede abrir pulsando F1 o la combinación de teclas de acceso rápido Ctrl+Shift+P para Linux) y busque "Coronauta".

  2. Seleccione Micronaut: Crear Proyecto Micronaut para crear un proyecto Micronaut.

  3. Siga las peticiones de datos del asistente para configurar el proyecto:

    • Seleccione la última versión de Micronaut disponible y no elija opciones con SNAPSHOT.

    • Seleccione el tipo de aplicación: Aplicación ficticia

    • Seleccione la última versión de Java disponible. En el momento de crear este laboratorio, es GraalVM EE 22.0.0, Java 17

    • Proporcione el nombre del proyecto: ocidemo

    • Proporcione el nombre de paquete base: com.example

    • Seleccionar el idioma del proyecto: Java

    • Agregue las funciones del proyecto: Database: Micronaut Data JDBC y Database: Oracle Database Server. Haga clic en Aceptar.

    • Recoger Maven o Gradle como herramienta de creación

    • Seleccione el marco de prueba: JUnit

    • Seleccione la carpeta de destino en la máquina host remota para guardar los archivos de proyecto: escriba /home/opc/ y pulse OK (Aceptar) para confirmar.

    Los archivos de proyecto Micronaut recién creados se abrirán en el espacio de trabajo actual en VS Code.

Paso 2: Configurar la aplicación para conectarse a la instancia de Oracle Autonomous Database

La información y las credenciales de conexión de Oracle Cloud Autonomous Database se almacenan en Oracle Wallet. Con Micronaut puede generar y descargar automáticamente la cartera y configurar el origen de datos. Realice los siguientes pasos para utilizar la configuración de origen de datos automatizada de la cartera:

  1. Haga clic en el nombre de la carpeta del proyecto en el panel izquierdo y abra el archivo application.yml en src/main/resources/.

  2. Sustituya el contenido del archivo por defecto por los siguientes datos:

    micronaut:
      application:
        name: ocidemo
    datasources:
      default:
        ocid: ocid1.autonomousdatabase.oc1...
        walletPassword: WALLET_PASSWORD
        username: DATABASE_USERNAME 
        password: DATABASE_PASSWORD
    
  3. Modifique la configuración predeterminada de la conexión del origen de datos.

    • Vuelva a la ventana del explorador y verá la consola de la instancia de Oracle Autonomous Database. En Información de Autonomous Database > Información general, busque y copie el valor ocid de la instancia.

    ID de instancia de Oracle Autonomous Database

    • Vuelva al código VS y, en application.yml, al OCID en el campo ocid.
    • walletPassword consiste en cifrar las claves dentro de la cartera y puede ser cualquier opción que desee (debe tener al menos ocho caracteres de longitud y debe incluir al menos una letra y un carácter numérico o un carácter especial).
    • Los valores username y password deben ser el nombre y la contraseña seleccionados al crear un usuario de esquema de base de datos en la práctica anterior.

NOTA: En los archivos de código VS no se guardan automáticamente. Para guardar los cambios en un archivo concreto, vaya a Archivo, Guardar o Guardar todo para guardar las ediciones en un grupo de archivos. También puede escribir CTLR +S.

Paso 3: Configurar controladores JDBC de Oracle Autonomous Database

Debe especificar la versión correcta del controlador de Oracle Database y los módulos necesarios en el archivo pom.xml en la raíz del proyecto.

  1. Aplique Oracle Database BOM 21.1.0.0 o superior.

    Si ha utilizado Maven, abra pom.xml en la raíz del proyecto e inserte lo siguiente entre las secciones repositories y 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>
    

    Si ha utilizado Gradle, abra build.gradle en la raíz del proyecto e inserte lo siguiente al final del bloque dependencies:

    implementation platform("com.oracle.database.jdbc:ojdbc-bom:21.1.0.0")
    
  2. Agregue una dependencia en el módulo micronaut-oraclecloud-atp.

    Si ha utilizado Maven, abra pom.xml e inserte lo siguiente dentro del bloque dependencies:

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

    Si ha utilizado Gradle, abra build.gradle y agregue lo siguiente al final del bloque dependencies:

    runtimeOnly("io.micronaut.oraclecloud:micronaut-oraclecloud-atp")
    
  3. Active el registro de SDK de OCI.

    Si ha utilizado Maven, abra pom.xml y agregue las siguientes dependencias dentro del bloque 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>
    

    Si ha utilizado Gradle, inserte la siguiente configuración justo encima del bloque dependencies:

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

Paso 4: configure Flyway para crear el esquema

A continuación, debe activar el soporte del kit de herramientas de migración de bases de datos de rutas de código abierto, que permite definir scripts SQL que gestionen y versionen el esquema de base de datos para que pueda evolucionar gradualmente el esquema junto con las nuevas versiones de la aplicación.

  1. Agregue una dependencia en micronaut-flyway.

    Si ha utilizado Maven, abra pom.xml e inserte lo siguiente dentro del bloque dependencies:

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

    Si ha utilizado Gradle, abra build.gradle y agregue lo siguiente al final del bloque dependencies:

    runtimeOnly("io.micronaut.flyway:micronaut-flyway")
    
  2. Cambie al archivo src/main/resources/application.yml y agregue la siguiente configuración justo debajo de la sección datasources en la línea 10, para permitir que Flyway se ejecute al iniciar:

    flyway:
      datasources:
        default:
          enabled: true
    
  3. Abra el archivo application-test.yml en src/test/resources/ y sustituya el contenido por defecto del archivo por la siguiente entrada para Flyway, que contendrá la configuración de prueba y definirá Flyway para limpiar el esquema cuando se inicie la aplicación, a fin de garantizar que las pruebas se ejecuten con datos nuevos:

    flyway:
      datasources:
        default:
          clean-schema: true
    

NOTA: en un escenario real, debe configurar una base de datos independiente con la que ejecutar las pruebas.

Paso 5: Definición del script de migración SQL

El siguiente paso es definir el script de migración SQL que creará el esquema inicial de la aplicación.

  1. Cree la carpeta db/migration en src/main/resources. Haga clic con el botón derecho en src/main/resources para ampliar el menú de contenido y seleccione Nueva carpeta:

    Crear una carpeta en código VS

  2. Cree un archivo SQL. Haga clic con el botón derecho en src/main/resources/db/migration/ para ampliar el menú de contenido y seleccione Nuevo archivo. Asigne el nombre V1__create-schema.sql.

  3. Agregue el siguiente código SQL al archivo:

    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;
    

    El script SQL anterior creará tablas owner y pet para almacenar datos para los propietarios y sus mascotas en Autonomous Database.

Ahora puede continuar con la siguiente tarea.

Más información