Upgrade to Pro — share decks privately, control downloads, hide ads and more …

QuarkusによるCloudNativeなJava

 QuarkusによるCloudNativeなJava

Quarkusの概要を確認しました。
インストール、実行方法と特徴を整理しています。

kouki.miura

July 15, 2024
Tweet

More Decks by kouki.miura

Other Decks in Programming

Transcript

  1. クラウドネイティブ JAVAフレームワーク ”Quarkus” 概要 三浦 恒樹 (MIURA KOUKI) Health Information

    Manager - 診療情報管理士 Senior Medical Information Technician - 上級医療情報技師 Medical Imaging Information Specialist - 医用画像情報専門技師 ドゥウェル株式会社 2024.07.13 JavaDO Quarkus Overview - Cloud Native JAVA Toolkit - DOWELL Co., Ltd
  2. 長男が飼っている ハリネズミがアイコン INTRODUCE ・ドゥウェル株式会社 (医療系IT開発・導入会社)に所属 ・マネージャー(プレイングマネージャー) ・仕事では Java(Linux) or C#(WindowsServer)

    + JavaScript ・趣味では PHP + JavaScript ・3児の父 ・札幌PHP勉強会、JBUG札幌、JavaDO、ゆるWeb勉強会 に参加 DOWELL Co., Ltd Medical IT System Development My job is team management and I also do programming The PHP & JavaScript is my hobby programming. I have 3 sons Iʼm joining in these communities, - Sapporo PHP Study group - Japan Backlog User Group in Sapporo(Backlog is Japanese project management tool) - Java User Group in Hokkaido(JavaDO)  - Yuru-WEB(Easy-WEB) Study group I use My sonʼs hedgehog
  3. インストール( Windows(WSL)) ・JBANGでQuarkusをインストール >> /home/(ユーザー名)/.jbang/bin/quarkus ・JBANG実行bashスクリプト(https://sh.jbang.dev) ・JBANGがインストールされていなければ jbang.tar取得・展開 ・JDKがインストールされていなければ JDK(latest)を取得 ・JavaでJBANGを実行する

    ・JBANGの処理 ①trustコマンド Manage which domains you trust to run scripts from. ②appコマンド Manage scripts installed on the user's PATH as commands. https://ja.quarkus.io/get-started/ curl -Ls https://sh.jbang.dev | bash -s - trust add https://repo1.maven.org/maven2/io/quarkus/quarkus-cli/ curl -Ls https://sh.jbang.dev | bash -s - app install --fresh --force quarkus@quarkusio Install Quarkus
  4. 開発者満足 - Dev UI - Extensions ・Extensions = 開発者向けの新しい動作 (依存関係)を追加する

     ・フレームワーク設定、起動、 GraalVM設定等を行う  ・テンプレートプロジェクトでは6つが有効な状態   ・ArC - Build time CDI dependency Injection   ・REST - Vert.xレイヤーで動作するJakarta REST実装   ・Eclipse Vert.x - リアクティブアプリ構築ツールキット   ・Mutiny - リアクティブプログラミングライブラリ   ・SmallRye Context Propagation - リアクティブ/非同期のコンテキスト伝搬   ・JSON-P - JSON Processing Support  ・702Extensions(7/13時点)
  5. 開発者満足 - Dev UI - Dev Services ・Dev Services =

    Extension向けの開発スタブをTestcontainersで生成する  ・例:JDBC Driver - PostgreSQLをインストール、接続情報未指定だと     PostgreSQLスタブのコンテナに自動接続してアプリが動作する
  6. 余談 JBANGとは ・セットアップなしで、すぐにJavaを学習・実行できる ・「.java ファイルを直接実行するJava 11 以降の   サポートは、少し面倒だと感じませんか?」(GitHub READMEより) https://www.jbang.dev/ //

    SOURCES Name.java void main() { System.out.println("Hello JBang!"); Name name = new Name(); System.out.println("Hello " + name.getName()); } Hello.java $ jbang --enable-preview Hello.java [jbang] Building jar for Hello.java… Note: /mnt/c/Files/java/quarkus/Hello.java uses preview features of Java SE 21. Note: Recompile with -Xlint:preview for details. Hello JBang! Hello Kouki Miura