Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Spring Bootという強すぎるフレームワークについて
Search
takayuki.miura
February 28, 2022
Technology
1.2k
0
Share
Spring Bootという強すぎるフレームワークについて
takayuki.miura
February 28, 2022
More Decks by takayuki.miura
See All by takayuki.miura
TerraformをやめてCDKでReStartしたあと、 CDKをやめてCDK for TerraformでReStartした話
tmiura0203
0
1.7k
急激なDB書き込みが行われるサービスをリビルドした話
tmiura0203
0
940
実際にリビルドを完遂してみて
tmiura0203
0
900
Other Decks in Technology
See All in Technology
Claude Code で使える DuckDB Skills を試してみた / DuckDB Skills and Claude Code
masahirokawahara
1
160
マンション備え付けのネットワークとLTE回線を組み合わせた ネットワークの安定化の考案
harutiro
1
130
2026年春のAgentCoreアプデ 細かいやつ全部まとめ
minorun365
4
230
パーソルキャリア IT/テクノロジー職向け 会社紹介資料|Company Introduction Deck
techtekt
PRO
0
140
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
15
100k
Oracle AI Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
6
1.4k
Databricks 月刊サービスアップデートまとめ 2026年04月号
tyosi1212
0
120
AIのための特別なアーキテクチャはいらない 0→1開発で実践した設計原則とガードレール
kaminashi
0
130
AIの揺らぎに“コシ”を与える階層化品質設計
ickx
0
280
AI-Assisted Contributions and Maintainer Load - PyCon US 2026
pauloxnet
1
150
可視化から活用へ — Mesh化・Segmentation・アライメントの研究動向
gpuunite_official
0
210
AWS運用におけるAI Agent活用術 / JAWS-UG 神戸 #11 LT大会
genda
1
250
Featured
See All Featured
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.1k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.2k
The browser strikes back
jonoalderson
0
1k
How STYLIGHT went responsive
nonsquared
100
6.1k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
800
Design in an AI World
tapps
1
210
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.9k
Building AI with AI
inesmontani
PRO
1
980
sira's awesome portfolio website redesign presentation
elsirapls
0
240
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2k
Making the Leap to Tech Lead
cromwellryan
135
9.8k
Transcript
4QSJOH#PPUͱ͍͏ ڧ͗͢ΔϑϨʔϜϫʔΫʹ͍ͭͯ エキサイト株式会社 三浦大幸
˞ݫີʹɺ4QSJOH#PPUͱͦΕʹؔ࿈͢Δٕज़ͷͰ͢
ࣗݾհ • エキサイト新卒6年目 • バックエンドエンジニアとして入社 • その後、フロント・iOSアプリ・AWSインフラ開発を経験 • PHPの開発経験が一番長いが、最近は主にJavaで開発中
https://twitter.com/miura0203
ΞδΣϯμ • Spring Bootとは? • Spring Bootのすごい所 • Spring
Bootの難しい所 • 最後に
4QSJOH#PPUͱʁ
4QSJOH#PPUͱʁ • Javaのフレームワーク • WebサイトやAPIはもちろん、バッチなども作ることができる • MavenやGradleで依存管理をする Spring Bootͱʁ
͍·͞Β+BWB 🤔
+BWBͱ͔ݹष͍ͷͰʜ • ʁ • ͔ΓͮΒ͍ʁ Spring Bootͱʁ
ࠓͷ+BWB 4QSJOH#PPUͳΒಡΈ͍͢ʂ Spring Bootͱʁ 4QSJOH#PPUͷྫ • ΞϊςʔγϣϯΛۦ͢Εɺॻ͖͘ ίʔυΛେ෯ʹΒ͢͜ͱ͕Ͱ͖ɺυϝ ΠϯίʔυʹྗͰ͖Δʂ •
ςετͳͲͷɺࠓͷ։ൃʹඞཁͳػೳ͕ ἧ͍ͬͯΔʂ
͍·͞Β+BWB 🤔
͍·ͦ͜+BWBʂ😎
4QSJOH#PPUͷ͍͢͝ॴ
%*͕ͱͯ؆୯ 4QSJOH#PPUͷ͍͢͝ॴ
%*ͷཧ໘ʜ -BSBWFMͷྫ *OUFSGBDFͱ*NQMFNFOUΛ࣮ %*ίϯςφʹొ ༻͍ͨ͠ΫϥεͷίϯετϥΫλͷ ҾͰఆٛ Spring
Bootͷ͍͢͝ॴ
%*ͷཧ໘ʜ -BSBWFMͷྫ • %*ొ͕ࡶʹͳΔ • ίϯετϥΫλͷهड़͕ࡶʹͳΔ ଞͷϑϨʔϜϫʔΫͰࣅͨΑ͏ͳݒ೦͕͋Δʜ Spring Bootͷ͍͢͝ॴ
%*͕ͱͯ؆୯ʂ 4QSJOH#PPUͷྫ *OUFSGBDFͱ*NQMFNFOUΛ࣮͠ɺ ΞϊςʔγϣϯΛఆٛ ༻͍ͨ͠ΫϥεͷϓϩύςΟʹɺΞϊ ςʔγϣϯͱҰॹʹఆٛ Spring Bootͷ͍͢͝ॴ
%*͕ͱͯ؆୯ʂ 4QSJOH#PPUͷྫ ϝϦοτ • %*ίϯςφͷొ͕γϯϓϧ • ίϯετϥΫλʹཏྻ͢Δඞཁ͕ͳ͘ɺ γϯϓϧ Spring Bootͷ͍͢͝ॴ
ϨΠϠ͝ͱͷΞΫηε੍ݶ͕Ͱ͖Δ 4QSJOH#PPUͷ͍͢͝ॴ ˞ݫີʹ(SBEMFͷػೳͰ͢
ϨΠϠ͝ͱʹΞΫηε੍ݶ͍ͨ͠ʜ $MFBO"SDIJUFDUVSFͷϨΠϠ ཧతʹɺӈਤͷΑ͏ʹ ϨΠϠؒͷΞΫηε੍ݶΛ͍ͨ͠ • ্͔ΒԼͷϨΠϠʹΞΫηεՄೳ • Լ͔Β্ͷϨΠϠʹΞΫηεෆՄ Spring Bootͷ͍͢͝ॴ
Controller Service Repository ΞΫηεՄೳ ΞΫηεෆՄ
ϨΠϠ͝ͱͷΞΫηε੍ݶ͕Ͱ͖Δʂ (SBEMFͷʮϚϧνϓϩδΣΫτʯͱ͍͏ػೳͰ ϨΠϠؒΞΫηε੍ݶΛ࣮ݱͰ͖Δ TFUUJOHTHSBEMFϑΝΠϧͰ αϒϓϩδΣΫτΛఆٛ CVJMEHSBEMFϑΝΠϧͰɺ αϒϓϩδΣΫτؒͷґଘΛఆٛ Spring
Bootͷ͍͢͝ॴ
σʔλΫϥε͕؆୯ʹ࡞ΕΔ 4QSJOH#PPUͷ͍͢͝ॴ ˞ݫີʹ-PNCPLͷػೳͰ͢
σʔλΫϥε͕ࡶʜ 1)1ͷྫ ΧϓηϧԽ͞ΕͨσʔλΫϥεΛ࡞Δʹɺ ҎԼ͕ඞཁ • QSJWBUFͳϓϩύςΟ • QVCMJDͳ HFUUFSTFUUFS •
*NNVUBCMFͳΒɺ TFUUFSͷΘΓʹ ίϯετϥΫλͰϓϩύςΟΛηοτ Spring Bootͷ͍͢͝ॴ
σʔλΫϥε͕؆୯ʹ࡞ΕΔʂ 4QSJOH#PPUͷྫ -PNCPLͱ͍͏ϥΠϒϥϦΛ͏͜ͱͰɺ ͔ͳΓγϯϓϧʹ࣮Ͱ͖Δ • !%BUBͰ .VUBCMFͳσʔλΫϥε • ࣗಈͰ HFUUFSTFUUFS͕͘
• ͞Βʹ !"DDFTTPSTΛ͚ͭΕɺ νΣʔϯͰఆٛͰ͖Δ • !7BMVFͰ *NNVUBCMFͳσʔλΫϥε • ࣗಈͰ HFUUFSίϯετϥΫλ͕͘ • ࣗಈͰϓϩύςΟʹ QSJWBUF͕͘ Spring Bootͷ͍͢͝ॴ
ͦΕҎ֎ʹͨ͘͞Μʂ • Envファイルに定義するような環境ごとのデータを、クラスに紐付けて取得し、DIして使用 できる • マルチプロジェクト機能を使って、簡単にモジュラモノリス構成を作れる • Spring BootではWebフロントサーバからバックエンドAPI、バッチまで作れるので、
ほぼ1サービスをそのプロジェクトのみで作ることができる • キャッシュ生成・取得、DBのトランザクション、データのJSON化やJSONのパースなど、面 倒な作業をアノテーションだけで実装することができる • などなど… Spring Bootͷ͍͢͝ॴ
4QSJOH#PPUͷ͍͠ॴ
ཪଆͷΈ͕ෳࡶ 4QSJOH#PPUͷ͍͠ॴ
ཪଆͷΈ͕ෳࡶ ͍Ζ͍Ζͳࣄ͕Ͱ͖ɺϥΠϒϥϦ๛ͳཪ ଆͷΈ͕ෳࡶͰɺ٧·Δͱղܾ͕େมͳ࣌ ͕͋Δ • ͓ଋతͳઃఆ͕ଟ͍ • ϚϧνϓϩδΣΫτ͏ϥΠϒϥϦͷΈ ߹ΘͤʹΑͬͯɺಛघͳઃఆ͕ඞཁͳ߹ ͕͋Δ
• %#3FEJTͷϛυϧΣΞͱͷଓΛΧε λϚΠζ͍ͨ͠߹ɺෳࡶͳઃఆ͕ඞཁʹͳ Δ • ͳͲͳͲʜ Spring Bootͷ͍͠ॴ
8FC্ͷݟͷϑΟϧλϦϯά͕ ͍͠ 4QSJOH#PPUͷ͍͠ॴ ˞ݫີʹ+BWB֤छϥΠϒϥϦؚΈ·͢
8FC্ͷݟͷϑΟϧλϦϯά͕͍͠ Spring Bootもそうだが、使われる各種ライブラリやJava自体も歴史が古く、いろいろな情報が Web上で出回ってしまっている • 過去のバージョンでは動いたが、今は使えないもの • 一見似ているが、実は異なるライブラリ •
依存管理システムであるMavenとGradleについて、欲しい方の情報が書かれていない • (しかもそのほとんどが英語) • などなど… Spring Bootͷ͍͠ॴ
(SBEMFͷ͍ํ͕͍͠ 4QSJOH#PPUͷ͍͠ॴ ˞ݫີʹ(SBEMFͷͰ͢
(SBEMFͷ͍ํ͕͍͠ (SBEMFͷઃఆɺଞͷґଘཧγεςϜʹൺɺ ෳࡶͳ͜ͱ͕Ͱ͖Δඇৗʹཧղ͕͍͠ͷ ͱͳͬͯ͠·͍ͬͯΔ • JNQMFNFOUBUJPOSVOUJNF0OMZ BQQMZ KBS • CVJMEHSBEMF
HSBEMFQSPQFSUJFT TFUUJOHTHSBEMF • (SBEMFλεΫͱʜʁ • ͳͲͳͲʜ Spring Bootͷ͍͠ॴ
ͦΕҎ֎ʹʜ • 先に挙げた点から、初期ラーニングコストはそれなりにある • Nullですぐエラーになるにも関わらず、Nullを安全に扱うのが難しい • ビルドに時間がかかる • などなど…
Spring Bootͷ͍͠ॴ
࠷ޙʹ
࠷ޙʹ 悪いところも色々書きましたが、それでもなお開発する上で有り余るメリットがあると考えて います。 また、JavaもSpring Bootも活発に更新されているので、いつか先程挙げたデメリットがなくなる 日も来るかもしれません。 ぜひ一度、Spring Bootに触ってみてください!