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
10年運用している 画像サービスでのJavaの活用と 今後の展望
Search
Naoki Morioka
November 24, 2016
Technology
620
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
10年運用している 画像サービスでのJavaの活用と 今後の展望
Naoki Morioka
November 24, 2016
More Decks by Naoki Morioka
See All by Naoki Morioka
Androidアプリ開発からみた RxJavaの使いどころ
nmorioka
1
4.1k
モバイルアプリでHTTP/2
nmorioka
1
140
既存AndroidアプリでKotlin導入を考える
nmorioka
0
130
Cardbord SDK
nmorioka
0
110
AndroidでJava8
nmorioka
0
320
Other Decks in Technology
See All in Technology
見守りエージェントを作ってみた(ローカルLLM + Hermes Agent)
happysamurai294
0
110
ファミコンでPHPを動かす / PHP on the Famicom
tomzoh
2
350
kintone の AI コワーカーを、 Anthropic にエージェントを"ホストさせて"作った話 #devkinmeetup
sugimomoto
0
110
しぶいSRE: サーバから見えない障害にどう向き合うか。ラストワンマイルのデバッグ実践 / Shibui SRE
kanny
13
6.5k
型は壁、Rustでもバグを直すな、表現できなくせよ
nwiizo
14
2.1k
Oracle Exadata Database Service on Cloud@Customer X11M (ExaDB-C@C) サービス概要
oracle4engineer
PRO
2
8.4k
第67回コンピュータビジョン勉強会CVPR2026読会前編
tsukamotokenji
0
140
個人開発で育てる「大規模設計の苗床」 - AI時代の1人開発から始める業務への知識接続 / The Seedbed for Large-Scale Design - From AI-Era Solo Projects to Professional Knowledge
bitkey
PRO
1
280
AI Coding Agent時代のcdk-nagガードレール 〜組織ルールを強制CIで守り抜く設計の挑戦〜
mhrtech
3
390
なぜ私たちのSREプラクティスはなかなか機能しないのか 〜システムより先に組織を見る〜 / Why our SRE practices aren't really working
vtryo
4
4k
発表と総括 / Presentations and Summary
ks91
PRO
0
140
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
15
110k
Featured
See All Featured
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
350
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Six Lessons from altMBA
skipperchong
29
4.3k
Everyday Curiosity
cassininazir
0
260
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Become a Pro
speakerdeck
PRO
31
6k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.6k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6k
How STYLIGHT went responsive
nonsquared
100
6.2k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
240
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
55k
Transcript
ӡ༻͍ͯ͠Δ ը૾αʔϏεͰͷ+BWBͷ׆༻ͱ ࠓޙͷల ++6($$$'BMM /BPLJ.PSJPLB
ΤϯδχΞྺ $ͪΐͬͱɺ΄ͱΜͲ+BWB αʔόཧɺσʔλඋ ࠷ۙ"OEPSJEJ04ΞϓϦ։ൃ ੲۀͰέʔϓϖϯΪϯΛࣂ͍ͬͯͨ ͜ͱ͕͋Γ·͢ Ԭঘه !O@NPSJPLB "CPVU.F ϑϦϡʔגࣜձࣾۈژࡏॅ
ਓʑͷ͜͜ΖΛ๛͔Ͱͤʹ͢Δ ྑ࣭ͳΤϯλςΠϯϝϯτΛग़ ͢Δʂ ϑϦϡʔגࣜձࣾ ձࣾհ ϓϦػ γΣΞ/P ήʔϜࣄۀ ϓϥΠζࣄۀ
ϐΫτϦϯΫϑϦϡʔͷ ϓϦػͱ࿈ಈͨ͠ϓϦըऔಘ αʔϏε αʔϏεհ 8&#αΠτ ωΠςΟϒΞϓϦ
ϓϦϯτγʔϧػʹɺͯ͢ը૾సૹػೳ͕͍͍ͭͯ·͢ɻ γʔϧʹҹࣈ͞Ε͍ͯΔ̞%ૹΒΕͯ͘Δϝʔϧͷ̧̡̪ʹ ΞΫηε͢ΔͱϐΫτϦϯΫͰऔಘͰ͖·͢ɻ
None
ࠓ͢͜ͱ w +BWBͰ࡞ͬͨαʔϏε͕ͲΜͳมભΛḷ͔ͬͨ w ී௨ͷ։ൃऀͰటष͘αʔϏε֦େΛଓ͚͍ͯ͘͜ͱ͕ ग़དྷͨͱ͍͏ w ࠓϫΫϫΫ͠ͳ͕ΒऔΓΜͰ͍Δ͜ͱ
ࠓ͞ͳ͍͜ͱ w ΞϓϦɾϑϩϯτΤϯυܥͷ
݁ ͋ͱ͘Β͍ +BWB+7.ͰؤுΕͦ͏Ͱ͢ʂ
ΞδΣϯμ w ӡ༻͍ͯ͠ΔαʔϏεͷมભ w εϚʔτϑΥϯରԠͷিܸ w ࠓऔΓΜͰ͍Δ͜ͱͱࠓޙͷల w ·ͱΊ
w ϑϦϡʔݩʑݚڀॴൃ w ܞଳ+BWB͚ࢄ11ϛυϧΣΞΛ։ൃ w ,%%*ʹࡌ͞ΕΔ w ར༻࣮ͮ͘ΓͷͨΊΤϯλςΠϯϝϯτɾίϯςϯπ࡞ Կނ+BWBΛબͨ͠ͷ͔ʁ +VNPOϓϩδΣΫτ
IUUQXXXJUNFEJBDPKQNPCJMFLKBWBIUNM
ձһ ສਓ ϖʔδϏϡʔ ສ17.POUI ։ൃऀ ໊νʔϜ ϐΫτϦϯΫαʔϏεॳظ
τϐοΫ ΦϨΦϨϑϨʔϜϫʔΫ ։ൃڥςΩετΤσΟλʴKBWBDίϚϯυ
8FC ϓϦᝑମ ϑΟʔνϟʔϑΥϯ αʔϏεॳظߏ ը૾ొ ϑΝΠϧ %# 8FCΞϓϦέʔγϣϯ +4& 5PNDBU
αʔό %# 0SBDMFJ αʔό ϑΝΠϧαʔό -JOVYαʔό αʔό )551)5.- ը૾Ξοϓϩʔυ
ձһ ສਓ ϖʔδϏϡʔ ສ17.POUI ։ൃऀ ໊νʔϜ ϐΫτϦϯΫαʔϏεظ
τϐοΫ 4FBTBSͷར༻։࢝ ձһɾΞΫηε͕૿͑ͯෛՙରࡦ
8FC ϓϦᝑମ ϑΟʔνϟʔϑΥϯ ը૾ొ ϑΝΠϧ %# )551)5.- ը૾Ξοϓϩʔυ 8FCΞϓϦέʔγϣϯαʔό +4&
5PNDBU 4FBTBS αʔό σʔλϕʔεαʔό 0SBDMFJ ΫϥελϦϯά αʔό ϑΝΠϧαʔό /FU"QQ'"4 αʔό αʔϏεظߏ
ֶΜͩ͜ͱ w +7.؆୯ͳϝϞϦௐͰ͔ͳΓͷߴෛՙʹ͑ΒΕΔ 9NY 1FSN(FO w όοΫΤϯυαʔόʹۚΛ͔͚ΕͳΜͱ͔ͳΔ͕ௐࠪɾ ݕূ͕େࣄ εϓϦοτϒϨΠϯͰσʔλ͕ਧͬඈͿ ࠷৽ϑΝΠϧαʔόೲ͞Εͳ͍
ϥΠϒϥϦҰཡ ϑΟʔνϟʔϑΥϯͰ͕ͬͭΓ+BWB w ϓϦػͰࡱӨͨ͠ը૾ΛͳΔ͘ΩϨΠʹಧ͚Δ w ϑΟʔνϟʔϑΥϯ'MBTI͚ಈతม w ܞଳ͚)5.-ϝʔϧ DPSF BVUI
QBZNFOU PQFOTPDJBM NBJM USBOTGFS DFSBUPS JNBHF TXG PLBP VSBOBJ EFDPNBJM SFDPNNFOE
ը࣭ͷͩ͜ΘΓ ֦େCJDVCJD๏ ॖখCJMJOFBS๏ ҎԼͷॖখ໘ੵฏۉ๏
import java.awt.Toolkit; import java.awt.image.AreaAveragingScaleFilter; import java.awt.image.BufferedImage; import java.awt.image.FilteredImageSource; import java.awt.image.ImageFilter;
BufferedImage tempImage = .. ImageFilter filter = new AreaAveragingScaleFilter(scaleSize.getWidth(), scaleSize.getHeight()); FilteredImageSource fis = new FilteredImageSource(tempImage.getSource(), filter); Image filteredImage = Toolkit.getDefaultToolkit().createImage(fis); ໘ੵฏۉ๏αϯϓϧ
ձһ ສਓ ϖʔδϏϡʔ ສ17.POUI ։ൃऀ ໊νʔϜ ϐΫτϦϯΫαʔϏεགྷΓظ
τϐοΫ ձһͷ৳ͼ͕಄ଧͪ πΪϋΪͰ࡞͖ͬͯͨαʔϏεͷݶքײ ͔͚ۚͳ͍ํ๏ͷࡧΛ͍ͨ͠
େ͖ͳվमҊ 4/4ػೳ ग़ͯདྷͯ શ໘ϦχϡʔΞϧΛܾҙ
ϦχϡʔΞϧݴޠΛม͑Δʁ w ϦχϡʔΞϧʹ͋ͨͬͯϝΠϯͷ։ൃݴޠΛ4DBMBʹ͢Δ͔ ͱ͍͏͕ٞר͖ى͜Δ w 4DBMB1SPT ॊೈͳݴޠදݱɺڧྗͳϦετૢ࡞ɾύλʔϯϚονͳͲ +7.ʹΑΔϋΠύϑΥʔϚϯε +BWBͷࢿ࢈͑Δ ઑͬͨ։ൃऀʹ͞ΔͷͰͳ͍͔ͱ͍͏ظ
ຊʹΔͷʁ w 4DBMB$POT ࣌ 8FCϑϨʔϜϫʔΫͷܾఆଧ͕ແ͍ 1MBZܥ-JGU ίϯύΠϧʹ͕͔͔࣌ؒΓ*%&ͷରԠශऑͰ͋ͬͨ طଘ։ൃऀͷֶशίετ
w 4FBTBSίʔυɾϥΠϒϥϦΛྲྀ༻͠ͳ͍ͱ͕͔͔Δ w ৽نࣄۀͷབྷΈͰਓࡐΛকདྷతʹ֬อग़དྷͳ͍Մೳੑ
͜͜ͰकΓʹೖͬͯ +BWBΛબ
ϦχϡʔΞϧߏ ϑΝΠϧ ըొ%# ΦϒδΣΫτετϨʔδ %# %# 8FCΞϓϦέʔγϣϯ +BWB4& 5PNDBU 4FBTBS
αʔό̒ ը૾ొ%# %# 0SBDMFH αʔό %# .Z42- 4QJEFS αʔό ΦϒδΣΫτετϨʔδ .PHJMF'4 αʔό ϓϦᝑମ ϑΟʔνϟʔϑΥϯ ը૾ొ 8&# )551)5.- ը૾Ξοϓϩʔυ
ֶΜͩ͜ͱ w ΞʔΩςΫνϟͷ౷ҰΛͯ͠+BWBͰεϐʔυײΛ࣋ͬͯ։ ൃͰ͖ͨ 44USVUT4%BP47FMPDJUZ w վमͨ͠ΠϯϑϥɾϛυϧΣΞ҆ఆಈ࡞ͤ͞Δͷʹ࣌ؒ ͕͔͔Δ ϓϨΦʔϓϯɺЌςετͳͲ࣮ࢪ͢Εྑ͔ͬͨ ԯը૾ଟ͔ͬͨʜ
w શ෦ॻ͖͑Δ௧Έ૬ͷͷͰ͋ΓԿճग़དྷͳ͍
ΞδΣϯμ w ӡ༻͍ͯ͠ΔαʔϏεͷมભ w εϚʔτϑΥϯରԠͷিܸ w ࠓऔΓΜͰ͍Δ͜ͱͱࠓޙͷల w ·ͱΊ
ϑΟʔνϟʔϑΥϯ͔Β εϚʔτϑΥϯ
)5.- $44 +BWB4DSJQU ωΠςΟϒΞϓϦ J04"OESPJE ௨৴ΩϟϦΞಠࣗ)5.- 'MBTI ௨৴ΩϟϦΞಠࣗೝূ 0"VUIͳͲΦʔϓϯͳೝূ ࢀೖোนߴ͍
ຊಠ༷ࣗ ୭ͰαʔϏεߏஙՄೳ ੈքڞ௨༷ εϚʔτϑΥϯγϑτ
εϐʔυײɺڝ૪ྗ͕ͳ͍ͱ ਰୀ͢Δͱ͍͏ةػײ
Ͳ͏͢Ε εϐʔυΛͬͱग़ͤΔͷ͔ʁ
·ͣʮͬͯΈΔʯ
w ΞδϟΠϧϓϩηεಋೖͰഓͬͨจԽ ࡉ͔͍վળͷੵΈॏͶ Ϣχοτςετɾ݁߹ςετΛ͔ͬ͠Γ࣮ࢪ w ߴෛՙରԠʹؾΛΘͳͯ͘ྑ͍ͷڌΓॴ +7.ͷύϑΥʔϚϯε ΠϯϑϥɾαʔϏεӡ༻ज़ ͬͯΈ͍ͯαΠΫϧͰվળΛॏͶΔ
w ར༻։ൃݴޠͷߜΓࠐΈ εΫϦϓτهड़ 1FSM3VCZˠ(SPPWZ ӡ༻πʔϧ 4DBMB3P3ˠ+BWB +BWB4DSJQU͕৽ͨʹඞਢʹͳΔͷͰઐ೦͢Δ w
ίΞͳΞʔΩςΫνϟͱΓ͋͑ͣखΛ͚ͭͳ͍ɻ4FBTBS ߋ৽͞Εͳͯ͘ؾʹͳΔ͚ͲઌૹΓ w ͨͩ͠ݴޠ࣮ߦڥͷ࠷৽Խదٓߦ͏ αʔϏε։ൃʹूத͢Δ
w ͦΕ·ͰνʔϜͩͬͨ։ൃΛదʹׂɾՃ͢Δ ৫Λ࠷దԽ͢Δ αΠτ։ൃνʔϜ "1* ΠϯϑϥνʔϜ σʔλղੳνʔϜ ωΠςΟϒΞϓϦ ։ൃνʔϜ ׂ
Ճ ɾɾɾ ΞϓϦ։ൃνʔϜ
݁Ռ૿͍͑ͯͬͨͷ ωΠςΟϒΞϓϦ J04"OESPJE εϚϑΥαΠτ՝ۚ "1*αʔό ೝূαʔό ը૾৴αʔό εϚϑΥαΠτ
·ͩ·ͩΔ
w શϦϙδτϦΛ47/͔Β(JU)VCͷҠߦ w HJUqPXͱ1VMM3FRVFTUʹΑΔෳਓͰͷεϜʔζͳ։ൃ ։ൃϑϩʔΛݟ̍͢
HJUqPX ϒϥϯνઓུ %FWFMPQϒϥϯνͷϚʔδˠ1VMM3FRVFTUϨϏϡʔ IUUQTSVBUMBTTJBODPNKBHJUXPSLqPXTXPSLqPXHJUqPX
w σΠϦʔϏϧυɾςετͷపఈ w νϟοτ 4MBDL ͷಋೖʹΑΔνʔϜঢ়گͷϦΞϧλΠϜ Ѳ ։ൃϑϩʔΛݟ̎͢
اը ։ൃ Πϯϑϥ 4MBDLΛϓϩδΣΫτμογϡϘʔυͱͯ͠ ։ൃͷঢ়گѲվળΛਐΊΔ ঢ়گѲ
݁Ռ૿͍͑ͯͬͨͷ̎ ωΠςΟϒΞϓϦ J04"OESPJE εϚϑΥαΠτ՝ۚ "1*αʔό ೝূαʔό ը૾৴αʔό εϚϑΥαΠτ ΞϓϦ՝ۚ Ϋϥυͷ
෦తར༻ σʔλूܭγεςϜ 64ରԠ "#ςετγεςϜ ϙΠϯταΠτ
4 ϓϦᝑମ 3%4 ΦϒδΣΫτετϨʔδ %# %# εϚʔτϑΥϯϒϥβ ը૾ొ 8FC 8FC
ೝূ "1* ը૾ 64 "84 +1 "84 ΦϯϓϨ 4 3FETIJGU 64ϓϦᝑମ &5- εϚʔτϑΥϯରԠߏ ൈਮ ը૾ొ ϑΝΠϧ εϚʔτϑΥϯΞϓϦ DBDIF
εϚʔτϑΥϯରԠߏ ൈਮ '1418FC +BWB4& 5PNDBU 4FBTBS αʔό "1*"VUI*NBHF +BWB4& 5PNDBU
4FBTBS αʔό σʔλϕʔε 0SBDMFH 4&3"$ αʔό
αʔϏε͕૿͖͑ͯͯग़ͯདྷΔ w ϩάऩूͷ αʔό͕ଟ֬͘ೝ͠ʹ͍͘ w όονॲཧͷ ͲͷαʔόͰԿ͕͍ͭಈ͍͍ͯΔͷ͔ͷཧग़དྷͳ͍
w +BWBδϣϒεέδϡʔϥ w 8FCίϯιʔϧͰཧ w શόονΛॲཧத
ӡ༻ߏ ΠϯϑϥνʔϜ اըνʔϜ ։ൃνʔϜ σʔλղੳνʔϜ ຊ൪ڥ EFQMPZ όονॲཧ ࢹ
ֶΜͩ͜ͱ w ࡉ͔͍վળͷੵΈॏͶ͕େ͖ͳޮՌΛग़͍ͯ͘͠ w ࣄۀͷ͕࣮ײग़དྷΔͱ։ൃ͕·ָͨ͘͠ͳ͖ͬͯͨ
ΞδΣϯμ w ӡ༻͍ͯ͠ΔαʔϏεͷมભ w εϚʔτϑΥϯରԠͷিܸ w ࠓऔΓΜͰ͍Δ͜ͱͱࠓޙͷల w ·ͱΊ
͜Ε͔ΒΔ͖͜ͱ w ΫϥυͷҠߦ ϓϦػͱͷଓωοτϫʔΫσʔλอޢͷ w ར༻ϑϨʔϜϫʔΫͷݶք 4FBTBS 4FBTBSͰ࡞ͬͨԶͨͪͷαʔϏεͷࠓ IUUQXXXTMJEFTIBSFOFUKZVLVUZPTFBTBS
4QSJOHϕʔεҠߦΛਐΊΔ w ڞ༗ͷίϯϙʔωϯτΛഉআ
νʔϜਤ ͓͞Β͍ αΠτ։ൃνʔϜ "1* ΠϯϑϥνʔϜ σʔλղੳνʔϜ ωΠςΟϒΞϓϦ ΞϓϦ։ൃνʔϜ
ڞ௨ͷίϯϙʔωϯτ %# Πϯϑϥ DPSFKBS ڞ௨ϥΠϒϥϦ '18FC 418FC "1* %# .PHJMF'4
NFNDBDIFE "VUI *NBHF Τοδ αΠτ "1*
ڞ௨ՕॴΛෳνʔϜͰ৮Δ w ҙਤ͠ͳ͍ػೳ͕ϦϦʔε͞ΕΔةݥੑ HJUqPXͰͷཷ·ͬͨGFBUVSFͷϦϦʔε࣌ ςʔϒϧߏมߋ࡞ۀ͕ඞཁͳͷ͕ൈ͚Δͱ·͍ͣ ֬ೝ࡞ۀʹखΛऔΒΕΔ w ݁߹ςετ࣮ࢪճͷ૿Ճ w ։ൃνʔϜ͕૿͠ʹ͍͘
νʔϜɺνʔϜͱͳͬͨ߹͞Βʹίετ͕ߴ͘ͳΓͦ͏
มߋͷํˠআʑʹׂ DPSFKBS Өڹখ DPSFKBS Өڹখ Өڹখ Өڹத Өڹେ Өڹେ DPSFKBS
w ํੑͱͯ͠զʑͷࢦ͢ͷͬΆ͍ ৫্ͷ੍ݶΛऔΓ͏ͨΊͷબࢶ ϨΨγʔίʔυΛϦΞʔΩςΫτ͢ΔͨΊͷબࢶ w ͨͩ͠ஈ֊Λ౿ΜͰ࣮ࢪͨ͠ํ͕ྑͦ͞͏ ϚΠΫϩαʔϏεΞʔΩςΫνϟ
αʔϏεׂ ஈ֊తʹ %# Πϯϑϥ ڞ௨ 418FC "1* .PHJMF'4 NFNDBDIFE "VUI
*NBHF Τοδ 4FSWJDF DPSFKBS
αʔϏεׂ ஈ֊తʹ ڞ௨ 418FC "1* "VUI *NBHF Τοδ 4FSWJDF DPSFKBS
%# Πϯϑϥ .PHJMF'4 NFNDBDIFE /FX %#
ୈҰาΛ౿Έग़ͯ͠Έͨ w εϚʔτϑΥϯΞϓϦ͚ϓογϡ௨ॲཧͷׂ w ΞϓϦͰͷར༻ͷΈͳͷͰӨڹ͕খׂ͍͘͢͞͠ίϯ ϙʔωϯτ w ඇಉظͰॲཧՄೳͳͨΊࢄγεςϜతʹߟྀ͢Δ͜ͱ গͳ͍
"1* DPSFKBS ͱͱͷϓογϡ௨αʔϏε 1VTI/PUJpDBUJPO "1/T ($.'$. )5514 ϓογϡ௨ ᶃ ᶄ
ᶅ
"1* DPSFKBS ϓογϡ௨αʔϏεͷվमҊ 1VTI/PUJpDBUJPO 4FSWJDF "1/T ($.'$. )5514 ϓογϡ௨ ΠϕϯτΩϡʔ
ᶃ ᶄ ᶅ ᶆ
࣮ݱʹ 4QSJOHΛ͓͏
4QSJOH$MPVE4USFBN IUUQTCMPHJLBN
ϓογϡ௨େྔʹ৴͞ΕΔ ͜ͱΛߟ͑Δͱ ,BGLBΛ#JOEFSʹͯ͠ΈΔ
,BGLB 4JOLઃఆҙ w (SPVQ TQSJOHDMPVETUSFBNCJOEJOHTJOQVUHSPVQ ͷઃ ఆ͕ͳ͍ͱશ4JOL͕Ԡ͢Δ w 4JOL࠶ىಈ࣌ʹաڈॲཧϝοηʔδΛ࠶औಘ͢Δ TQSJOHDMPVETUSFBNLBGLBCJOEJOHT\EFTUJOBUJPO^DPOT
VNFSTUBSU0⒎TFUMBUFTUΛઃఆ͢Δͱ࠶औಘ͠ͳ͍ ,BGLB 4JOL 4JOL
w ΫϥελϦϯάߏࢼݧ w ҟৗܥಈ࡞ɺ෮ؼࢼݧ w ࠶ىಈࢼݧ γεςϜςετ͔ͬ͠Γ࣮ࢪʂ
4QSJOH#PPUͷྑ͞ w গͳ͍ίʔυྔͰෳࡶͳॲཧΛ࣮ݱͰ͖Δ w ๛ͳؔ࿈ϥΠϒϥϦ܈ʂ w ఆظతʹϓογϡΛ৴͢Δαʔό؆୯ʹߏங 4DIFEVMJOH5BTLTΛར༻ͨ͠
@EnableAutoConfiguration @EnableScheduling public class NotificationApplication { @Autowired Source source;
@Scheduled(cron = "0 0,10,20,30,40,50 * * * *", zone = "Asia/Tokyo") public void execute() throws InterruptedException { // find push message entry // … // send message source.output().send(MessageBuilder.withPayload(message).build()); return; } public static void main(String[] args) { SpringApplication.run(NotificationApplication.class, args); } } 4DIFEVMJOH5BTLT
"1* DPSFKBS վमޙͷϓογϡ௨αʔϏε "1/T ($.'$. )5514 ϓογϡ௨ ,BGLB )551 /PUJpDBUJPO
4FSWJDF 4QSJOH#PPU 1VTI/PUJpDBUJPO 4JOL 4QSJOH#PPU ఆظϓογϡ ૹ৴πʔϧ 4QSJOH#PPU
"1* DPSFKBS վमޙͷϓογϡ௨αʔϏε "1/T ($.'$. )5514 ϓογϡ௨ ,BGLB )551 /PUJpDBUJPO
4FSWJDF 4QSJOH#PPU 1VTI/PUJpDBUJPO 4JOL 4QSJOH#PPU ఆظϓογϡ ૹ৴πʔϧ 4QSJOH#PPU ઈࢍࣄத
ఆظϓογϡ௨৴ͷํ ຖඦສ௨ॲཧ͍ͯͯ͠ ҆ఆͯ͠·͢Αʂ
ࡶײɿಘҙΛ͚ͯΈͯ w ,BGLBͷΑ͏ͳෳࡶͳฒྻॲཧഉଞ੍ޚͳͲΛѻ͏ϑϨʔ ϜϫʔΫ෦Λ4DBMBͰॻ͘ w ϑϨʔϜϫʔΫར༻ʹ͍ͭͯ+BWBΠϯλʔϑΣʔεΛ༻ҙ ͯ͠ށΛେ͖͘։͍͓ͯ͘ w ࠷ۙͰ-BHPN 4DBMBϚΠΫϩαʔϏεϑϨʔϜϫʔΫ
ͦͷΑ͏ͳྲྀΕʁ
ֶΜͩ͜ͱ w ੩తݴޠͱڧྗͳ*%&ͰαʔϏεׂḿΔ w +BWBͰग़དྷΔ͜ͱΛྑ͘Βͳ͔ͬͨ 4QSJOH$MPVE/FUqJYͳͲͰ͍͢͝πʔϧ͕നԡ͠ +BWBྑ͍Ͱ͢Ͷʂָ͍͠ʂ w ͬͱׂΛਐΊ͍ͯͬͯྑͦ͞͏ͩ
ΞδΣϯμ w ӡ༻͍ͯ͠ΔαʔϏεͷมભ w εϚʔτϑΥϯରԠͷিܸ w ࠓऔΓΜͰ͍Δ͜ͱͱࠓޙͷల w ·ͱΊ
$PODMVTJPO w ࣄۀڥʹ߹Θͤͯటष͋͘Δ͕αʔϏεΛ֦େग़དྷͨ w େ͖ͳίʔυϕʔε৫ʹӨڹ͢Δෛ࠴ʹͳΓ͑Δ w ৫Λॊೈʹ͠Α͏ͱ͢ΔͱࣗવͱϚΠΫϩαʔϏεΞʔΩ ςΫνϟʹ͔͍ͬͯ͘ͱײ͡Δ w +BWB+7.ͷ҆ఆੑ࠷ߴͩ
ࠓ +BWB4QSJOH$MPVE ͳͲͷΩʔϫʔυʹϫΫϫΫ
ઌͷվળΛଓ͚͍ͯ͘ͱ ͞Βʹ̍̌ܦͬͯ·ͨ͠ͱ ͳ͍ͬͯΔؾ͕͢Δ
࠷ޙʹ ϑϦϡʔͰҰॹʹಇ͍ͯ ͘ΕΔΤϯδχΞΛืूதʂ IUUQXXXTBJZPGVSZVKQJOEFYIUNM