ノート:
- このチュートリアルは、Oracle提供の無料ラボ環境で入手できます。
- Oracle Cloud Infrastructureの資格証明、テナンシおよびコンパートメントに例の値を使用します。演習を完了するときは、これらの値をクラウド環境に固有の値に置き換えます。
TASK 3: VSコードでのMicronautアプリケーションの作成
この演習では、Micronautアプリケーションを作成し、Oracle Autonomous Databaseと通信するようにアプリケーションを構成します。
『GraalVM Tools for Micronaut Extension』は、時間を節約するプロビジョニング・プロセスの一環として、VSコードに事前にインストールされています。Micronautのサポートには、VSコード内のインタフェースを介してMicronautプロジェクトを作成できるMicronautの起動アプリケーションも含まれています。依存関係として事前インストールされているGraalVM Tools for Java Extensionと組み合せて、GraalVM EnterpriseでMicronautプロジェクトを実行し、VS Codeから直接デバッグできます。
見積時間: 15分
タスク・コンテンツ
このタスクでは、次のことを行います。
- 新しいMicronautアプリケーションの作成
- Oracle Autonomous Databaseインスタンスに接続するためのMicronautアプリケーションの構成
- Oracle Autonomous Database JDBCドライバの構成
- スキーマを作成するためのフライアウェイの構成
- SQL移行スクリプトの定義
ステップ1:新しいMicronautアプリケーションの作成
-
リモートホストに接続された「VS Code」ウィンドウで、「View」、「Commandパレット」(コマンドパレットは、F1を押すか、Linuxの Ctrl+Shift+Pホットキーの組み合わせを押して開くことができ、さらに「Micronaut」を検索します。
-
「ミクロノート: Micronautプロジェクトの作成」を選択して、Micronautプロジェクトを作成します。
-
ウィザード・プロンプトに従ってプロジェクトを構成します。
-
使用可能な最新のMicronautバージョンを選択し、SNAPSHOTのオプションを選択しないでください
-
アプリケーション・タイプを選択します: Micronautアプリケーション
-
使用可能な最新のJavaバージョンを選択します。このラボの作成時には、GraalVM EE 22.0.0、Java 17となっています
-
プロジェクト名を入力します: ocidemo
-
基本パッケージ名 com.exampleを指定します
-
プロジェクトの言語を選択: Java
-
プロジェクトの機能(データベース: Micronaut Data JDBCおよびデータベース: Oracle Databaseサーバー)を追加します。「OK」をクリックします
-
ビルド・ツールとしてMavenまたはGradleを選択します
-
テスト・フレームワークを選択: JUnit
-
リモートホストマシン上の宛先フォルダを選択してプロジェクトファイルを保存します。/home/opc/と入力し、OKを押して確定します。
新しく作成したMicronautプロジェクト・ファイルは、現在のワークスペースでVSコードに開きます。
-
ステップ2: Oracle Autonomous Databaseインスタンスに接続するためのアプリケーションの構成
Oracle Cloud Autonomous Databaseの接続情報および資格証明は、Oracle Walletに格納されます。Micronautを使用すると、ウォレットを自動的に生成およびダウンロードし、データ・ソースを構成できます。ウォレットから自動データ・ソース構成を使用するには、次のステップを実行します。
-
左側のパネルでプロジェクト・フォルダ名をクリックし、
src/main/resources/
の下のapplication.yml
ファイルを開きます。 -
デフォルトのファイル・コンテンツを次のデータで置き換えます。
micronaut: application: name: ocidemo datasources: default: ocid: ocid1.autonomousdatabase.oc1... walletPassword: WALLET_PASSWORD username: DATABASE_USERNAME password: DATABASE_PASSWORD
-
デフォルトのデータソース接続設定を変更します。
- ブラウザ・ウィンドウに戻り、Oracle Autonomous Databaseインスタンス・コンソールが表示されます。「Autonomous Database情報」→「一般情報」で、インスタンスの
ocid
値を見つけてコピーします。
- VSコードに戻り、
application.yml
でocid
フィールドのOCIDに戻ります。 walletPassword
は、ウォレット内のキーを暗号化するもので、任意に選択できます(8文字以上で、少なくとも1つの文字と1つの数字または1つの特殊文字を含める必要があります)。username
およびpassword
の値は、前の演習でデータベース・スキーマ・ユーザーを作成する際に選択した名前とパスワードである必要があります。
- ブラウザ・ウィンドウに戻り、Oracle Autonomous Databaseインスタンス・コンソールが表示されます。「Autonomous Database情報」→「一般情報」で、インスタンスの
注:VSコードファイルは自動的に保存されません。変更を特定のファイルに保存するには、「ファイル」、「保存」、または「すべて保存」の順に移動して、編集内容を大量のファイルに保存します。または、
CTLR +S
と入力します。
ステップ3: Oracle Autonomous Database JDBCドライバの構成
プロジェクトのルートにあるpom.xml
ファイルで、Oracle Databaseドライバの正しいバージョンと必要なモジュールを指定する必要があります。
-
Oracle Database BOM 21.1.0.0以上を適用します。
Mavenを使用した場合は、プロジェクトのルートで
pom.xml
を開き、repositories
セクションと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>
Gradleを使用した場合は、プロジェクトのルートで
build.gradle
を開き、dependencies
ブロックの最後に次を挿入します。implementation platform("com.oracle.database.jdbc:ojdbc-bom:21.1.0.0")
-
micronaut-oraclecloud-atp
モジュールへの依存性を追加します。Mavenを使用した場合は、
pom.xml
を開き、dependencies
ブロック内に次を挿入します。<dependency> <groupId>io.micronaut.oraclecloud</groupId> <artifactId>micronaut-oraclecloud-atp</artifactId> <version>1.2.1</version> <scope>runtime</scope> </dependency>
Gradleを使用した場合は、
build.gradle
を開き、dependencies
ブロックの最後に次を追加します。runtimeOnly("io.micronaut.oraclecloud:micronaut-oraclecloud-atp")
-
OCI SDKロギングを有効にします。
Mavenを使用した場合は、
pom.xml
を開き、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>
Gradleを使用した場合は、
dependencies
ブロックのすぐ上に次の構成を挿入します。configurations.all { resolutionStrategy.dependencySubstitution { substitute(module('commons-logging:commons-logging')) .using(module('org.slf4j:jcl-over-slf4j:1.7.36')) } }
ステップ4:スキーマを作成するためのフライアウェイの構成
次に、新しいバージョンのアプリケーションとともにスキーマを段階的に展開できるように、データベース・スキーマを管理およびバージョニングするSQLスクリプトを定義できるオープン・ソースのFlywayデータベース移行ツールキットのサポートを有効にする必要があります。
-
micronaut-flyway
への依存性を追加します。Mavenを使用した場合は、
pom.xml
を開き、dependencies
ブロック内に次を挿入します。<dependency> <groupId>io.micronaut.flyway</groupId> <artifactId>micronaut-flyway</artifactId> <scope>runtime</scope> </dependency>
Gradleを使用した場合は、
build.gradle
を開き、dependencies
ブロックの最後に次を追加します。runtimeOnly("io.micronaut.flyway:micronaut-flyway")
-
src/main/resources/application.yml
ファイルに切り替えて、行10のdatasources
セクションのすぐ下に次の構成を追加し、起動時にFlywayを実行できるようにします。flyway: datasources: default: enabled: true
-
src/test/resources/
の下にあるapplication-test.yml
ファイルを開き、テスト構成を含むFlywayの次のエントリでファイルのデフォルト・コンテンツを置換し、アプリケーションの起動時にスキーマを消去するようにFlywayを設定して、テストを最新データで実行するようにします。flyway: datasources: default: clean-schema: true
注:実際のシナリオでは、テストを実行する別のデータベースを設定します。
ステップ5: SQL移行スクリプトの定義
次のステップでは、アプリケーションの初期スキーマを作成するSQL移行スクリプトを定義します。
-
src/main/resources
の下にdb/migration
フォルダを作成します。src/main/resources
を右クリックしてコンテンツ・メニューを展開し、「新規フォルダ」を選択します。 -
SQLファイルを作成します。
src/main/resources/db/migration/
を右クリックしてコンテンツ・メニューを展開し、「新規ファイル」を選択します。V1__create-schema.sql
という名前を付けます。 -
次のSQLコードをファイルに追加します。
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;
前述のSQLスクリプトは、所有者とそのペットのデータをAutonomous Databaseに格納するための
owner
およびpet
表を作成します。
次のタスクに進むことができます。