SlideShare ist ein Scribd-Unternehmen logo
1 von 102
Spring Boot ユーザの方のための
Quarkus 入門
ソフトバンク株式会社 関 崚平
萬年 司
自己紹介
名前 関 崚平
出身 愛知県名古屋市
趣味 野球観戦・スポーツ
名前:萬年 司
年齢:25歳
出身:東京都目黒区
趣味:バンド、筋トレ、旅行、アプリ開発
http://byceclorets.herokuapp.com/
自己紹介
セッション対象者・学べる事
対象者
・Quarkus を使ってみたいと思っている人
・Quarkus に興味がある人
・Quarkus が気になっている Spring Boot ユーザ
本セッション聴講後には......
セッション対象者・学べる事
対象者
・Quarkus を使ってみたいと思っている人
・Quarkus に興味がある人
・Quarkus が気になっている Spring Boot ユーザ
本セッション聴講後には......
アジェンダ
・ソフトバンクの IT 本部とシステム開発について
・Quarkus について
・Quarkus のプロジェクトの作成方法
・Quarkus を使ってAPIの実装
・Spring ユーザのための Quarkus
・Quarkus でのデータベースアクセス
・まとめ
ソフトバンクの IT 本部とシステム開発について
ソフトバンクの IT 本部について
IT 本部はいわゆる情報システム部門で、主にキャリア事
業に必要な IT サービスを提供するためシステムを開発・
運用しています。
IT 本部のシステムの多くは Java で開発、あるいは Java
製品を利用しています。
キャリア事業を支えるシステム開発
キャリア事業のシステムはユーザーの皆さまの生活を支える
重要なインフラであるため、自社のデータセンターで
Waterfall による堅牢・堅実なシステム開発がメインでした。
CloudNative への挑戦
事業環境の変化に伴い、事業部門との密なコミュニケーショ
ンが重要、スピード感が必要等のシステムの特性に応じて、
アジャイル開発や CloudNative なシステム開発も積極的に
取り組んでいます。
アプリケーションサーバからの転換
これまでのアプリケーションサーバ上での可動を前提した
Java EE ベースの開発から、アプリケーションサーバを必要
としない実行可能 Jar ベースの開発への移行が課題。
コンテナにおける Java プロセス
これまでの大きな Java プロセスに複数のアプリケーション
のデプロイから、小さな Java プロセスとアプリケーション
をコンテナにパッケージして、デプロイする時代へ。
大きな Java プロセス
App App App App App
Ap
p
小さな Java プロセス
Ap
p
Ap
p
Ap
p
Ap
p
新世代 Java フレームワークの選定
Kubernetes などのコンテナ環境に最適化された Java アプ
リケーションを実現するフレームワークである
Quarkus を採用
Quarkus の採用
2019/08 より、ショップ向けの新規システム開発にて、
バックエンドの REST API に Quarkus (0.20.0) を使用
して開発を開始し、現在は1.7.5Final で開発中。
View API
Azure
Traffic
Manager
Azure
Application
Gateway
Azure Kubernetes
Service
オンプレ
Quarkus について
Quarkus が生まれた背景
アプリケーションのコンテナ化が一般的になってきている
コンテナ
しかし!
JVMでの起動で、メモリ使用量が大きいアプリ
ケーションだと Pod の起動に時間がかかる
Quarkus が生まれた背景
アプリケーションのコンテナ化が一般的になってきている
コンテナ
しかし!
GraalVM で起動することで Kubernetes などのコンテナ環境
に最適化された Java アプリケーションを実現する素早い起動と
少ないメモリ使用が特徴の
Quarkus 登場!
JVMでの起動で、メモリ使用量が大きいアプリ
ケーションだと Pod の起動に時間がかかる
Quarkus は JVM 起動でも高速
Bean 定義ア
ノテーション
のスキャン
@Inject の
スキャン
依存性解決
プロキシバイ
トコード生成
Bean の生成
従来
Quarkus
起動時 初回コール時
初回コール時ビルド時
ビルド時に依存性を解決するので、JVM 起動であっても高速!
https://www.slideshare.net/agetsuma/quarkus
ネイティブイメージの利用について
「Javaの起動時間といかに戦うか」https://speakerdeck.com/kishida/how-to-fight-against-java-warmup-time
JIT AOT
ビルド時間 ○ ✕
起動時間 ✕ ○
スループット ○ ✕
ピークパフォーマンスまで ✕ ○
ネイティブイメージにも将来的には挑戦したいが、AOT にもメリ
デメがあり、JIT でも十分起動は高速なので、ネイティブイメー
ジであと数秒削るのが有意義なのかは、慎重に判断。
今回は JIT で紹介していく。
Quarkus の目的
https://developers.redhat.com/blog/2019/03/07/quarkus-next-generation-kubernetes-native-java-framework/
The goal of Quarkus is to make Java a leading platform in
Kubernetes and serverless environments while offering
developers a unified reactive and imperative programming model
to optimally address a wider range of distributed application
architectures.
Quarkus のゴールは、Kubernetes やサーバレスの環境下で、分散環境の
幅広いアプリケーションアーキテクチャに最適にするため、デベロッパーに
対してリアクティブとインペラティブなプログラミングモデルを統合して提
供することで、Java を先進的なプラットフォームにすることだ。
Quarkus のいいところ
1. MicroProfile と互換性があり、Java EE との親和性が高く
エンタープライズシステムでは Java EE が多いので学習コ
ストが低い!
2. アノテーションのスキャン、依存性の解決、バイトコードの
生成などの処理をビルド時に実施するため、起動も早く、メ
モリのフットプリントも小さい
3. 公式ドキュメントの example がわかりやすい etc.
Quarkus プロジェクトの作成方法
準備するもの
・MAVEN 3.6.3
・JDK 11
・IDE (あるとよい)
・データベース(ここでは PostgreSQL を使用します)
・インターネットにつながる PC
・Quarkus を学びたいという気持ち!
コマンドから簡単にプロジェクトの作成
mvn io.quarkus:quarkus-maven-plugin:1.7.2.Final:create ¥
-DprojectGroupId=org.acme ¥
-DprojectArtifactId=book ¥
-DclassName="org.acme.book.controller.BookController" ¥
-Dpath="/hello"
① Quarkus のバージョンを指定
② GroupId の指定
③ ArtifactId の指定
④ デフォルトで作成されるクラス名の指定
⑤ デフォルトで作成される GET のパスを指定
①
②
③
④
⑤
自動生成されるプロジェクト
自動生成されるプロダクトコード
自動生成されるテストコード
Spring Boot の場合
以下のサイトから Spring Boot のプロジェクトを作成できる
http://start.spring.io/
Spring Boot の場合
以下のサイトから Spring Boot のプロジェクトを作成できる
http://start.spring.io/
Quarkus にもあっ
たらいいなぁ~
サイトから Quarkus プロジェクトを作成
以下のサイトから Quarkus のプロジェクトを作成できる
http://code.quarkus.io
①
②
①
②
ビルドツールの選択
zip でダウンロード
デフォルトで作成されるプロジェクト
入れたい dependency も選択可能
選択する依存関係によってはデフォルトで作成されるクラスの中
身が変わっていたので、使いたい依存ファイルがあらかじめ決ま
っている人は選択して作成すると便利!
先ほど作成したプロジェクトの起動
$ cd book
$ mvn compile quarkus:dev
開発モードで起動するとホットリロードが効く!
↓実行結果このような感じになれば OK です!↓
ホットリロード:
Java コードに修正を入れると自動コンパイルしてくれる
動作確認
$ curl http://localhost:8080/hello
hello
curl コマンドで動作確認
<結果> hello が出力されたことを確認できればOK!
Quarkus を使って API の実装
簡単な CRUD 処理ができる書籍管理 API
Controller
ServiceImpl
DomainObject
RepositoryImpl
Application Layer
Domain Layer
Repository Layer
Service Repository
凹型アーキテクチャを採用して、
Controller、Service、Repository
の実装方法について紹介します。
データベースアクセス
今回 はデータベースとして PostgreSQL を使用していきます。
(好きなデータベースを使ってください)
データベースの初期設定
スキーマ定義
ダミーデータのインサート
Controller の作成(CDI)
①Beanへの登録
②フィールドインジェクション
@ApplicationScoped アプリケーションスコープに登録される
Controller のテスト
少し前までは、Quarkus は
Mockito を使用できず、自分で
Mock オブジェクトを作成する必
要があったが、最近のアップデー
トで、Mockito が使用可能に!
Controller のテスト
@QuarkusTest
① @SpringBootTest と同様に DI
コンテナ生成しインジェクトした状
態でテストすることができます。
Controller のテスト
@QuarkusTest
② テストの実行前にアプリケーショ
ンを立ち上げます。その後、
Quarkus はテスト実行中ずっと実
行状態になり、これにより、
Quarkus は一度だけ起動されるの
で、テストが非常に速くなります。
Controller のテスト
GET エンドポイントに対するテスト
Controller のテスト
CREATE エンドポイントに対するテスト
Service とドメインモデル の作成
①Beanへの登録
②フィールドインジェクション
Service のテスト
Mockito を使用してテストを作成できる
Repository の作成(Entity)
1. @Entity の付与
2. @Table でテーブル名の指定
Repository の作成(READ)
Repository の作成(READ)
今回は、 ORM として PanacheRepository を採用
→ Repository を独自に作成する必要がある。
→ つまりテストも作成する必要がある...
もっと簡単な Repository を作成しない方法は後程紹介!
Repository の作成(READ)
POM に上記の dependency を追加することで使用可能
Repository の作成(READ)
PanacheRepository が用意している find メソッドを使用
findById メソッドもあるが id が Long 型である必要がある
find であれば、id 以外にも使えて便利!
Repository の作成(CREATE)
PanacheRepository が用意している persist メソッドを使用
Repository の作成(UPDATE)
PanacheRepository が用意している update メソッドを使用
自分で query を作成する必要があ
る。
?1, ?2
などの表記で placeHolder を設定
できる。
Repository の作成(UPDATE)
PanacheRepository が用意している update メソッドを使用
updateメソッドで、
第一引数に先ほど作成した query
第二引数以降に必要な数に応じた値
をいれることで、更新ができる。
Repository の作成(DELETE)
Repository の作成(DELETE)
まず、削除対象のエンティティを先ほどの READ と同様に
find findById などで取得する。
Repository の作成(DELETE)
PanacheRepository が用意している delete メソッドを使用
Repository のテスト
Test 用の DB Setup は ここでは h2 を使用していますが、お好きなも
のを使ってください。
Repository のテスト
@QuarkusTest
① @SpringBootTest と同様に DI
コンテナ生成しインジェクトした状
態でテストすることができます。
Repository のテスト
@QuarkusTest
② テストの実行前にアプリケーショ
ンを立ち上げます。その後、
Quarkus はテスト実行中ずっと実
行状態になり、これにより、
Quarkus は一度だけ起動されるの
で、テストが非常に速くなります。
Spring ユーザのための Quarkus
Extensions for Spring
Quarkus の公式サイトには現在いくつかのは Spring と
の互換性が保てる Extension が紹介されています。
Extensions for Spring
https://quarkus.io/guides/spring-di
それぞれの Extension ではチュートリアルの公開もされ
ています。今回はこれらを参考に先ほどと同じ書籍管理
API を作成していきます。
Book API By Spring Extension
Dependency
依存ライブラリとして Spring の機能を追加するためこれら
3つを POM に追加していきます。
Book API By Spring Extension
Controller
@Autowired や @GetMaping など Spring ユーザ には馴
染みのあるアノテーションを使っています。
Book API By Spring Extension
Service
@Service による Bean 登録など、ここも Spring で使うア
ノテーションを使用!
Book API By Spring Extension
Repository
データアクセスには Spring Data JPA を使用します。
interface だけ指定すれば基本的な CRUD 処理を行うメソッ
ドの使用ができます。
実行してみる
$ mvn compile quarkus:dev
下記のコマンドで Quarkus を 起動
下の様に表示されればコンパイル、起動成功!
実行してみる
http://localhost:8080/books
← 取得できている!
http://byceclorets.herokuapp.com/2020/10/25/quarkus-spring-
extension-で簡単な-api-を作成してみる/
※ このパートの内容
ブラウザから下記 URI で localhost に
アクセスしてみると・・
Spring -> Quarkus
Spring Boot で作ったプロジェクトの実装コードを
変更しないで Quarkus で起動できる?
ここまで Spring と同じコードで実行できるという事は・・・
Spring Project
Spring で作られた先ほどと同じ 書籍
管理 API です。こちらを Quarkus
として起動できるようにしていきます。
Spring -> Quarkus
まず @SpringBootApplication が
付与された main メソッドは削除しま
す。
Spring -> Quarkus
主に大きな変更が必要なのがこちらの
pom.xml になります。
ここに記述されている Spring の依存
関係やビルド設定を Quarkus の物に
書き換えていきます。
Spring -> Quarkus
大きく違うのは POM の部分なので Spring の依存ライブラリ
を Quarkus で提供しているものに変更して行きます。
Spring -> Quarkus
build タグも変更します。もとは Spring Boot Maven プラ
グインを使用するために上記のようになっています。
Spring -> Quarkus
Quarkus のプラグインを使用するた
めの設定として左の様に変更します。
Spring -> Quarkus
dependencyManagement タグを追加して Quarkus が提供
している BOM を指定して継承します。
Spring -> Quarkus
最後に application.properties を変更
していきます。
Spring -> Quarkus
application.properties
DB へアクセスするための情報を記載している部分を変更していきます。
Spring -> Quarkus ここで詰まった・・・
$ mvn compile quarkus:dev
下記のコマンドで Quarkus を 起動
これだけで問題無く起動できるだろうと思っていましたが
QuarkusPersistenceXmlParser が private メソッドにアクセスし
ようとしているという内容のエラーが・・・
Spring -> Quarkus ここで詰まった・・・
POM の <parent> で指定していた spring-boot-starter-parent を
削除していなかった事が原因だったためこれを消すと Quarkus として起
動ができた!
この parent の設定により Spring Boot が提供する標準設定をビルド環
境に組み込んでしまう事が原因のようです。
POM の修正個所はいくつかあるため上記のようなミスが無いように・・
Spring -> Quarkus
主に POM の切り貼りで Spring で作られたアプリケーションを
Quarkus として起動することができました。
http://byceclorets.herokuapp.com/2020/10/25/spring-で作られた-api-を-quarkus-で起動する/
※ このパートの内容
Quarkus でのデータベースアクセス
JPA
Spring Data
JPA
Panache
ORM
ここまでで出てきた Panache と Spring Data JPA に加え Java
EE の JPA などデータアクセスにはいくつかの選択肢があるため
ここからはそれぞれの特徴をみていきます。
JavaEE JPA
・弊社の現プロジェクトも主に使用している
・Repository の実装が必要
JavaEE JPA
Repository で EntityManager を使用して CRUD 処理を行います。
Spring Data JPA
・Spring に慣れている場合学習コストが低い
・基本的な CRUD に関しては Repository を実装
しなくてもよい
Spring Data JPA
最初のデモで使用したときのように Entity の型を追加した
CrudRepository を継承した Repository の interface を指定
するだけで、単純な CRUD 処理はこの Repository のメソッドと
して使用可能!
Spring Data JPA
インジェクション
用意されている findById を使用
Panache
・PanacheEntity を継承した Entity を使用
・Repository の実装は必要なし
Panache(Entity)
PanacheEntity を継承しても良
いがカスタム ID を持つ Entity を
使用したい場合は
PanacheEntityBase を継承
Panache(Entity)
3. フィールドを public にする!
public にすることで自動で
getter/setter を生成してくれる
bookEntity.id = 1;
という操作は、コンパイル時に
getter/setter へ変換されるので
実行時にはカプセル化される!
Panache
PanacheEntity を継承した Entity のメソッドとしてデータアクセス
のためのメソッドを実行!
PanacheMock
Mockito を使って Panache Entity のメソッドのモックが出来る
Panache Repository pattern
Repository を実装することも可能
Panache ここが詰まった
Code Smells やエラーを検知するので毎日確認をしてプロジェクトの
コードに問題個所が無いかチェックしています。上記は実装コードを
どれだけテストがカバーしているかを Coverage として表します。
現在のプロジェクトで使っている SonarQube
Panache ここが詰まった
カバレッジが取れない・・・
Panache のメソッドを使っていたクラスの Coverage が常に0%
こちらは Issue として GitHub にも記載されていました。
Panache ここが詰まった
原因となった JaCoCo 側での対応待ち・・・
アップデートによる対応予定らしい
Coverage の取得には JaCoCo というライブラリが使われていて
Panache の使用時にエラーが発生し Coverage が現状取得できない。
QuarkusTest と JUnit で同一ファイル(jacoco.exec)書き込みが発
生した際に JaCoCo ででるエラーが問題。
ORM
メリット デメリット
JPA
安定していて一番無難な選択肢 簡易的な CRUD でも実装しなければならない
手間がある
Spring Data JPA
Spring に慣れている場合ラーニングコ
ストが低くRepository の実装が必要
ないため開発速度の向上も見込める
公式が Preview 版として出しているためや
や動作に不安な部分もある
Panache
(active record pattern)
Entity ベースでデータアクセス出来、
Repository の Interface も必要ない
Coverage が取得できないといった問題があ
った
Panache
(repository pattern)
三層構造のアーキテクチャに対応でき
る
Repository の実装は必要
こちらも Coverage が取得できない
JPA
Spring Data
JPA
Panache
ORM
結局どれを使えば良い?
JPA
Spring
Data JPA
Panache
ORM
結局どれを使えば良い?
現在弊社のプロジェクトでは Java EE の JPA を使用していますが、一長一
短あるため絶対これ、とは言い切れません。そのためこれらのメリデメを考
慮して今後 Panache や Spring Data JPA の使用も考えています。
まとめ
・Quarkus のいいところ
→ コンテナ化に対応した Java フレームワーク
→ ドキュメントがわかりやすい
・Quarkus のプロジェクトの作成方法
→ コマンドとサイトからプロジェクトを作成
・Quarkus を使ってAPIの実装
→ 実際に書籍管理 API を作成
・Spring ユーザのための Quarkus
→ Spring と同じシンタックスで Quarkus として起動できる!
・Quarkus でのデータベースアクセス
→ ORM の選択肢を紹介、どれも一長一短あり

Weitere ähnliche Inhalte

Was ist angesagt?

[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティスAmazon Web Services Japan
 
Azure API Management 俺的マニュアル
Azure API Management 俺的マニュアルAzure API Management 俺的マニュアル
Azure API Management 俺的マニュアル貴志 上坂
 
Springを何となく使ってる人が抑えるべきポイント
Springを何となく使ってる人が抑えるべきポイントSpringを何となく使ってる人が抑えるべきポイント
Springを何となく使ってる人が抑えるべきポイント土岐 孝平
 
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)NTT DATA Technology & Innovation
 
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall ) LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall ) Hironobu Isoda
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話Kumazaki Hiroki
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことAmazon Web Services Japan
 
Java EE から Quarkus による開発への移行について
Java EE から Quarkus による開発への移行についてJava EE から Quarkus による開発への移行について
Java EE から Quarkus による開発への移行についてShigeru Tatsuta
 
さくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組みさくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組みTakeshi Ogawa
 
Redisの特徴と活用方法について
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法についてYuji Otani
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪Takuto Wada
 
Spring Bootの本当の理解ポイント #jjug
Spring Bootの本当の理解ポイント #jjugSpring Bootの本当の理解ポイント #jjug
Spring Bootの本当の理解ポイント #jjugMasatoshi Tada
 
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とはがんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とはJun-ichi Sakamoto
 
はじめてのElasticsearchクラスタ
はじめてのElasticsearchクラスタはじめてのElasticsearchクラスタ
はじめてのElasticsearchクラスタSatoyuki Tsukano
 
がっつりMongoDB事例紹介
がっつりMongoDB事例紹介がっつりMongoDB事例紹介
がっつりMongoDB事例紹介Tetsutaro Watanabe
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Akihiro Suda
 
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」Takuto Wada
 

Was ist angesagt? (20)

[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
 
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
 
Azure API Management 俺的マニュアル
Azure API Management 俺的マニュアルAzure API Management 俺的マニュアル
Azure API Management 俺的マニュアル
 
Springを何となく使ってる人が抑えるべきポイント
Springを何となく使ってる人が抑えるべきポイントSpringを何となく使ってる人が抑えるべきポイント
Springを何となく使ってる人が抑えるべきポイント
 
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
 
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall ) LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
 
Java EE から Quarkus による開発への移行について
Java EE から Quarkus による開発への移行についてJava EE から Quarkus による開発への移行について
Java EE から Quarkus による開発への移行について
 
Maven基礎
Maven基礎Maven基礎
Maven基礎
 
さくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組みさくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組み
 
Redisの特徴と活用方法について
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法について
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪
 
Spring Bootの本当の理解ポイント #jjug
Spring Bootの本当の理解ポイント #jjugSpring Bootの本当の理解ポイント #jjug
Spring Bootの本当の理解ポイント #jjug
 
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とはがんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
 
Metaspace
MetaspaceMetaspace
Metaspace
 
はじめてのElasticsearchクラスタ
はじめてのElasticsearchクラスタはじめてのElasticsearchクラスタ
はじめてのElasticsearchクラスタ
 
がっつりMongoDB事例紹介
がっつりMongoDB事例紹介がっつりMongoDB事例紹介
がっつりMongoDB事例紹介
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
 

Ähnlich wie Spring Boot ユーザの方のための Quarkus 入門

中級者のためのWordPress講座[第1回]既存のプラグインを組み合わせることでWEBサービスを作ってみよう!
中級者のためのWordPress講座[第1回]既存のプラグインを組み合わせることでWEBサービスを作ってみよう!中級者のためのWordPress講座[第1回]既存のプラグインを組み合わせることでWEBサービスを作ってみよう!
中級者のためのWordPress講座[第1回]既存のプラグインを組み合わせることでWEBサービスを作ってみよう!switch3000
 
SpringBootの研修本で学んだこと
SpringBootの研修本で学んだことSpringBootの研修本で学んだこと
SpringBootの研修本で学んだことiPride Co., Ltd.
 
いるけどないからつくってみたよ高速モバイルプッシュ配信くん #cmdevio
いるけどないからつくってみたよ高速モバイルプッシュ配信くん #cmdevioいるけどないからつくってみたよ高速モバイルプッシュ配信くん #cmdevio
いるけどないからつくってみたよ高速モバイルプッシュ配信くん #cmdeviofd0
 
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話JustSystems Corporation
 
はじめての Azure 開発
はじめての Azure 開発はじめての Azure 開発
はじめての Azure 開発Yoshitaka Seo
 
アプリ屋もDockerをドカドカ使おう ~ Docker入門
アプリ屋もDockerをドカドカ使おう ~ Docker入門アプリ屋もDockerをドカドカ使おう ~ Docker入門
アプリ屋もDockerをドカドカ使おう ~ Docker入門Hori Tasuku
 
2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション
2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション
2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクションTakahiro Okumura
 
PWA 総まとめ @ABC 2018 Spring
PWA 総まとめ @ABC 2018 SpringPWA 総まとめ @ABC 2018 Spring
PWA 総まとめ @ABC 2018 SpringRyu Shindo
 
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会Takayuki Shimizukawa
 
JAWSUG初心者向けトラック 【Deploy&Ops】
JAWSUG初心者向けトラック 【Deploy&Ops】JAWSUG初心者向けトラック 【Deploy&Ops】
JAWSUG初心者向けトラック 【Deploy&Ops】Yukihiko SAWANOBORI
 
【Camphor ×サイボウズ】selenium勉強会
【Camphor ×サイボウズ】selenium勉強会【Camphor ×サイボウズ】selenium勉強会
【Camphor ×サイボウズ】selenium勉強会Yuki Okada
 
明日からはじめられる Docker + さくらvpsを使った開発環境構築
明日からはじめられる Docker + さくらvpsを使った開発環境構築明日からはじめられる Docker + さくらvpsを使った開発環境構築
明日からはじめられる Docker + さくらvpsを使った開発環境構築MILI-LLC
 
2014.11.01 Dockerことはじめ
2014.11.01 Dockerことはじめ2014.11.01 Dockerことはじめ
2014.11.01 Dockerことはじめxyzplus_net
 
XpagesDay 2014 [A-2] スタンダードクライアントで xpages を使ってみよう
XpagesDay 2014 [A-2] スタンダードクライアントで xpages を使ってみようXpagesDay 2014 [A-2] スタンダードクライアントで xpages を使ってみよう
XpagesDay 2014 [A-2] スタンダードクライアントで xpages を使ってみようTakeshi Yoshida
 
Xcode4 project template (slide)
Xcode4 project template (slide)Xcode4 project template (slide)
Xcode4 project template (slide)Wataru Kimura
 
試して学べるクラウド技術! OpenShift
試して学べるクラウド技術! OpenShift試して学べるクラウド技術! OpenShift
試して学べるクラウド技術! OpenShiftEtsuji Nakai
 
OpenShift 3で、DockerのPaaSを作る話
OpenShift 3で、DockerのPaaSを作る話OpenShift 3で、DockerのPaaSを作る話
OpenShift 3で、DockerのPaaSを作る話Kazuto Kusama
 
クラウド上でのChef活用と ベストプラクティス v0.2.0
クラウド上でのChef活用と ベストプラクティス v0.2.0クラウド上でのChef活用と ベストプラクティス v0.2.0
クラウド上でのChef活用と ベストプラクティス v0.2.0NIFTY Cloud
 
サイドプロジェクトで使う Azure DevOps
サイドプロジェクトで使う Azure DevOpsサイドプロジェクトで使う Azure DevOps
サイドプロジェクトで使う Azure DevOpsShuhei Eda
 

Ähnlich wie Spring Boot ユーザの方のための Quarkus 入門 (20)

中級者のためのWordPress講座[第1回]既存のプラグインを組み合わせることでWEBサービスを作ってみよう!
中級者のためのWordPress講座[第1回]既存のプラグインを組み合わせることでWEBサービスを作ってみよう!中級者のためのWordPress講座[第1回]既存のプラグインを組み合わせることでWEBサービスを作ってみよう!
中級者のためのWordPress講座[第1回]既存のプラグインを組み合わせることでWEBサービスを作ってみよう!
 
SpringBootの研修本で学んだこと
SpringBootの研修本で学んだことSpringBootの研修本で学んだこと
SpringBootの研修本で学んだこと
 
いるけどないからつくってみたよ高速モバイルプッシュ配信くん #cmdevio
いるけどないからつくってみたよ高速モバイルプッシュ配信くん #cmdevioいるけどないからつくってみたよ高速モバイルプッシュ配信くん #cmdevio
いるけどないからつくってみたよ高速モバイルプッシュ配信くん #cmdevio
 
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
 
Fcp
FcpFcp
Fcp
 
はじめての Azure 開発
はじめての Azure 開発はじめての Azure 開発
はじめての Azure 開発
 
アプリ屋もDockerをドカドカ使おう ~ Docker入門
アプリ屋もDockerをドカドカ使おう ~ Docker入門アプリ屋もDockerをドカドカ使おう ~ Docker入門
アプリ屋もDockerをドカドカ使おう ~ Docker入門
 
2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション
2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション
2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション
 
PWA 総まとめ @ABC 2018 Spring
PWA 総まとめ @ABC 2018 SpringPWA 総まとめ @ABC 2018 Spring
PWA 総まとめ @ABC 2018 Spring
 
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
 
JAWSUG初心者向けトラック 【Deploy&Ops】
JAWSUG初心者向けトラック 【Deploy&Ops】JAWSUG初心者向けトラック 【Deploy&Ops】
JAWSUG初心者向けトラック 【Deploy&Ops】
 
【Camphor ×サイボウズ】selenium勉強会
【Camphor ×サイボウズ】selenium勉強会【Camphor ×サイボウズ】selenium勉強会
【Camphor ×サイボウズ】selenium勉強会
 
明日からはじめられる Docker + さくらvpsを使った開発環境構築
明日からはじめられる Docker + さくらvpsを使った開発環境構築明日からはじめられる Docker + さくらvpsを使った開発環境構築
明日からはじめられる Docker + さくらvpsを使った開発環境構築
 
2014.11.01 Dockerことはじめ
2014.11.01 Dockerことはじめ2014.11.01 Dockerことはじめ
2014.11.01 Dockerことはじめ
 
XpagesDay 2014 [A-2] スタンダードクライアントで xpages を使ってみよう
XpagesDay 2014 [A-2] スタンダードクライアントで xpages を使ってみようXpagesDay 2014 [A-2] スタンダードクライアントで xpages を使ってみよう
XpagesDay 2014 [A-2] スタンダードクライアントで xpages を使ってみよう
 
Xcode4 project template (slide)
Xcode4 project template (slide)Xcode4 project template (slide)
Xcode4 project template (slide)
 
試して学べるクラウド技術! OpenShift
試して学べるクラウド技術! OpenShift試して学べるクラウド技術! OpenShift
試して学べるクラウド技術! OpenShift
 
OpenShift 3で、DockerのPaaSを作る話
OpenShift 3で、DockerのPaaSを作る話OpenShift 3で、DockerのPaaSを作る話
OpenShift 3で、DockerのPaaSを作る話
 
クラウド上でのChef活用と ベストプラクティス v0.2.0
クラウド上でのChef活用と ベストプラクティス v0.2.0クラウド上でのChef活用と ベストプラクティス v0.2.0
クラウド上でのChef活用と ベストプラクティス v0.2.0
 
サイドプロジェクトで使う Azure DevOps
サイドプロジェクトで使う Azure DevOpsサイドプロジェクトで使う Azure DevOps
サイドプロジェクトで使う Azure DevOps
 

Spring Boot ユーザの方のための Quarkus 入門

Hinweis der Redaktion

  1. https://blog1.mammb.com/entry/2016/02/11/213434#%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%97%E3%82%A2%E3%83%8E%E3%83%86%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3
  2. SpringBootTest との比較は Quarkus → SpringBootTest で行う。
  3. SpringBootTest との比較は Quarkus → SpringBootTest で行う。