Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Spring & Spring Boot 基本のキ / Spring & Spring Boo...
Search
otty375
February 23, 2019
Programming
1.9k
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Spring & Spring Boot 基本のキ / Spring & Spring Boot for Beginner
otty375
February 23, 2019
More Decks by otty375
See All by otty375
Spring Boot 2.3 の Liveness & Readiness Probes 対応 について調べてみた / Spring Boot 2.3 Liveness & Readiness Probes
otty375
2
1.1k
図解で学ぶ Spring MVC / Architecture of Spring MVC
otty375
13
31k
PlantUMLでさくさくモデリングライフ
otty375
0
350
Other Decks in Programming
See All in Programming
Distance field of Julia set
kinakomoti321
0
260
作れるエンジニアから、価値を届けるエンジニアへ
ryunakayama
1
220
作って学ぶSpring BootのAuto Configuration / JJUG Night Seminar 2026-10-19
rshindo
0
220
Kotlinize Is Not Just Converting to Kotlin
chigichan24
1
220
SODA - FACT BOOK(JP)
sodainc
1
40k
現場と育てるRailsモデリング 〜Spreadsheetから始めたモデル設計〜
siroemk
2
1.2k
Vue.jsで作る空間解析アプリとCapacitorプラグインのData Bridge
hal_spidernight
1
160
クラウドゲーミングのパフォーマンス最適化に挑む / Cloud Gaming Performance Tuning
vivion
0
330
Enforcing Your Architecture with Unit Tests in the AI Era (Swift Connection X)
steliosf
PRO
1
140
Lambda durable functionsでHuman in the Loopを楽に…楽に……
har1101
2
290
Long Living Tokens, Die, Die, Die! (or: The One Ring is Banned in Modern)
sylph01
0
410
Getting Started with Vibe Coding
miccheng
0
180
Featured
See All Featured
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
320
Rails Girls Zürich Keynote
gr2m
96
14k
Unsuck your backbone
ammeep
672
58k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
660
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
240
The Language of Interfaces
destraynor
162
27k
RailsConf 2023
tenderlove
30
1.6k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
630
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
1.1k
Ruling the World: When Life Gets Gamed
codingconduct
0
430
We Are The Robots
honzajavorek
0
440
Transcript
Spring & Spring Boot جຊͷΩ 2019/02/23 #javajo @otty_375
Who am I? • ͍͚(@otty_375) • Javaঁࢠ෦ӡӦϝϯόʔ • Springྺ1΄Ͳ
SpringΛॳΊͯ৮Δํʁ
ࠓͷΰʔϧ • ॳΊͯͷํ • SpringΛͬͯΒ͏ • ܦݧ͕͋Δํ • ཧղΛਂΊͯΒ͏
ʘࠓޙSpringΛֶश͢Δ্ͰͷʹͳΕʗ
Agenda • Spring Projectͱ • Spring Core • Spring MVC
• Spring Boot • ·ͱΊ
ϑϨʔϜϫʔΫͱ
ϑϨʔϜϫʔΫͱ • γεςϜ։ൃͰසൟʹΘΕΔॲཧΛఏڙͯ͠ ͘ΕΔͷ • σʔλΞΫηεɺηογϣϯཧɺೝূ etc. • ར༻͢Δ͜ͱͰϏδωεϩδοΫʹूதͰ͖Δ
Spring Project
Spring Project • Java͚ͷΦʔϓϯιʔεϑϨʔϜϫʔΫ • ෳͷίϯϙʔωϯτͷΈ߹ΘͤͰͰ͖ͯ ͍Δ • ެࣜαΠτ https://spring.io/
Spring Project ͷҰ෦ • Spring Framework • Spring Data •
Spring Security • Spring Batch • Spring Boot
Spring Framework ͷҰ෦ • Spring Core • Dependency Injection (DI)
• Aspect Oriented Programming (AOP) • Spring MVC • Spring Testing
ࠓճѻ͏෦ • Spring Core • Dependency Injection (DI) • Spring
MVC • Spring Boot
Spring Core
Dependency Injection (DI) • ༁͢Δͱʮґଘੑͷೖʯ • ར༻͍ͨ͠ΠϯελϯεΛར༻͢ΔଆͰੜ ͢ΔͷͰͳ͘ɺ֎͔Βઃఆͯ͋͛͠Δ͜ͱ • ʢҙʣDIࣗମSpring͚ͩͷػೳͰͳ͍
DIͷྲྀΕ 1. Beanఆٛͨ͠ΒDIίϯςφʹొ͞ΕΔ 2. ར༻͢ΔଆͷΫϥεͰBeanΛΠϯδΣΫγϣϯ ͯ͠͏
DIͷྲྀΕ 1. Beanఆٛͨ͠ΒDIίϯςφʹొ͞ΕΔ 2. ར༻͢ΔଆͷΫϥεͰBeanΛΠϯδΣΫγϣϯ ͯ͠͏
Beanͱ • Spring͕ཧ͢ΔΠϯελϯεͷ͜ͱ
Beanఆٛͱ • Springʹཧͯ͠΄͍͠Πϯελϯεͩͱ Θ͔ΔΑ͏ʹఆٛ͢Δ͜ͱ
Beanఆٛͷํ๏3ͭ • XMLϕʔε • Java Configϕʔε ࠓճ͜Ε • Ξϊςʔγϣϯϕʔε ࠓճ͜Ε
Java ConfigϕʔεͷྲྀΕ 1. @ConfigurationΛ͚ͭͨJavaΫϥεΛ༻ҙ 2. ͦͷΫϥεʹ@BeanΛ͚ͭͨϝιουΛ࡞ 3. ͦͷϝιουBeanͱͯ͠ఆ͍ٛͨ͠ΫϥεΛ newͨ͠ͷΛΓʹͱΔ
ʘ۩ମྫϋϯζΦϯύʔτʹͯʗ
ΞϊςʔγϣϯϕʔεͷྲྀΕ 1. Beanొ͍ͨ͠ΫϥεͩͱΘ͔ΔΑ͏ͳҹ ʢ=ΞϊςʔγϣϯʣΛ͚ͭΔ • Ξϊςʔγϣϯͷछྨ৭ʑ͋Δɹ @Controller, @Service, @Repository, @Component,
etc. ʘ۩ମྫϋϯζΦϯύʔτʹͯʗ
DIͷྲྀΕ 1. Beanఆٛͨ͠ΒDIίϯςφʹొ͞ΕΔ 2. ར༻͢ΔଆͷΫϥεͰBeanΛΠϯδΣΫγϣϯ ͯ͠͏
DIίϯςφͱ • BeanΛొ͢Δॴͷ͜ͱ
DIίϯςφొͷྲྀΕ 1. Springىಈ࣌ʹBeanఆٛͷҹ͕͍ͭͨ ͷΛ୳͢ 2. ݟ͔ͭͬͨΒDIίϯςφʹొ͢Δ 3. ҹΛ୳͢͜ͱΛίϯϙʔωϯτεΩϟϯ ͱ͍͏
DIίϯςφొͷਤ ᶃ %*ίϯςφ ʢ"QQMJDBUJPO$POUFYUʣ @Service 4BNQMF4FSWJDF Ϋϥε #FBO
4BNQMF4FSWJDF ։ൃऀ͕ΞϊςʔγϣϯΛ͚ͭͯ Beanఆٛ͢Δ
DIίϯςφొͷਤ ᶄ %*ίϯςφ ʢ"QQMJDBUJPO$POUFYUʣ @Service 4BNQMF4FSWJDF Ϋϥε #FBO
4BNQMF4FSWJDF Spring͕ίϯϙʔωϯτΩϟϯͯ͠ BeanରΛ୳͢
DIίϯςφొͷਤ ᶅ %*ίϯςφ ʢ"QQMJDBUJPO$POUFYUʣ @Service 4BNQMF4FSWJDF Ϋϥε #FBO
4BNQMF4FSWJDF Spring͕BeanΛDIίϯςφʹ ొ͢Δ
DIͷྲྀΕ 1. Beanఆٛͨ͠ΒDIίϯςφʹొ͞ΕΔ 2. ར༻͢ΔଆͷΫϥεͰBeanΛΠϯδΣΫγϣϯ ͯ͠͏
ΠϯδΣΫγϣϯͱ • ΫϥεؒͷґଘؔΛ֎͔ΒೖΕͯ͋͛Δ ͜ͱ
ΠϯδΣΫγϣϯͷํ๏3ͭ • ϑΟʔϧυΠϯδΣΫγϣϯ • ηολʔΠϯδΣΫγϣϯ • ίϯετϥΫλΠϯδΣΫγϣϯ ࠓճ͜Ε
ίϯετϥΫλΠϯδΣΫγϣϯ 1. BeanΛར༻͍ͨ͠ΫϥεͷίϯετϥΫλͷ ҾʹΠϯδΣΫγϣϯ͍ͨ͠BeanΛ͠ɺ ࣗͷϑΟʔϧυʹηοτ͍ͯ͘͠ 2. ίϯετϥΫλʹ@AutowiredΛ͚ͭΔɹɹ ʢίϯετϥΫλ͕Ұͭͷ࣌লུՄೳʣ
ʘ۩ମྫϋϯζΦϯύʔτʹͯʗ
%*ίϯςφ @Service 4BNQMF4FSWJDF @Controller @Autowired 4BNQMF$POUSPMMFS QSJWBUFpOBM4BNQMF4FSWJDFTBNQMF4FSWJDF 4BNQMF$POUSPMMFS
4BNQMF4FSWJDFTBNQMF4FSWJDF \ UIJTTBNQMF4FSWJDFTBNQMF4FSWJDF ^ ΠϯδΣΫγϣϯͷਤ ᶃ
%*ίϯςφ @Service 4BNQMF4FSWJDF #FBO 4BNQMF4FSWJDF #FBO 4BNQMF$POUSPMMFS @Controller
@Autowired 4BNQMF$POUSPMMFS QSJWBUFpOBM4BNQMF4FSWJDFTBNQMF4FSWJDF 4BNQMF$POUSPMMFS 4BNQMF4FSWJDFTBNQMF4FSWJDF \ UIJTTBNQMF4FSWJDFTBNQMF4FSWJDF ^ ΠϯδΣΫγϣϯͷਤ ᶄ ΠϯδΣΫγϣϯ
DIͰԿ͕͏Ε͍͔͠ • Πϯελϯεͷ࡞ॳظԽॲཧͳͲΛɹɹ Γग़ͤΔͷͰίʔυͷݟ௨͕͠ྑ͘ͳΔ • DIίϯςφʹΠϯελϯεͷείʔϓɹɹ ϥΠϑαΠΫϧΛཧͯ͠Β͑Δ • ςετͰΠϯελϯεͷࠩ͠ସ͕͑͘͢͠ ͳΔ
Spring MVC
Spring MVC • SpringͰWebΞϓϦέʔγϣϯΛ։ൃ͢Δࡍʹ ར༻͢ΔϑϨʔϜϫʔΫͷҰͭ • MVCύλʔϯΛ࠾༻ • ϦΫΤετϚοϐϯάͳͲΛΞϊςʔγϣϯΛ ར༻ͯ͠ઃఆͰ͖Δ
Spring MVC ͷਤ ϑϩϯτίϯτϩʔϥ %JTQBUDIFS4FSWMFU )BOEMFS.BQQJOH $POUSPMMFS 7JFX3FTPMWFS
7JFX ᶃ ᶄ ᶅ ᶆ ᶇ ᶈ ᶉ ᶊ ᶋ ᶌ
Spring MVC ͷ෦ॲཧ ᶃ ֎෦͔ΒϦΫΤετ͕ͬͯ͘Δ ᶄ DispatcherServlet͕HandlerMappingʹϦΫΤετ͢Δ ᶅ
HandlerMapping͕ϦΫΤετʹԠͨ͡ControllerΛฦͯ͘͠ΕΔ ᶆ DispatcherServlet͕ControllerʹॲཧΛҕৡ͢Δ ᶇ Controller͕View໊ͱModelΛฦ͢ ᶈ DispatcherServlet͕View໊ΛViewResolverʹ͢ ᶉ ViewResolver͕ViewͷશύεΛฦ͢ ᶊ DispatcherServlet͕ViewʹModelΛ͢ ᶋ ViewModelΛݩʹHTMLΛΈཱͯͯฦ͢ ᶌ ֎෦ʹHTMLϨεϙϯεΛฦ͢
ࠓճѻ͏෦ ϑϩϯτίϯτϩʔϥ %JTQBUDIFS4FSWMFU )BOEMFS.BQQJOH $POUSPMMFS 7JFX3FTPMWFS 7JFX
ࠓճѻ͏෦ ᶃ ֎෦͔ΒϦΫΤετ͕ͬͯ͘Δ ᶄ DispatcherServlet͕HandlerMappingʹϦΫΤετ͢Δ ᶅ HandlerMapping͕ϦΫΤετʹԠͨ͡ControllerΛฦͯ͘͠ΕΔ ᶆ
DispatcherServlet͕ControllerʹॲཧΛҕৡ͢Δ ᶇ Controller͕View໊ͱModelΛฦ͢ ᶈ DispatcherServlet͕View໊ΛViewResolverʹ͢ ᶉ ViewResolver͕ViewͷશύεΛฦ͢ ᶊ DispatcherServlet͕ViewʹModelΛ͢ ᶋ ViewModelΛݩʹHTMLΛΈཱͯͯฦ͢ ᶌ ֎෦ʹHTMLϨεϙϯεΛฦ͢
Controllerͱ • HTTPϦΫΤετΛϚοϐϯάͨ͠Γɹɹɹ ྫ֎ϋϯυϦϯάΛߦ͏෦ • @Controller, @RestControllerΞϊςʔγϣϯ Λ͚ͭΔ
RequestMapping • Controllerʹ༻ҙͨ͠ϝιουʹ͚ͭΔΞϊ ςʔγϣϯ • ͜ͷURLʹ͜ͷHTTPϝιουͷϦΫΤετ͕ དྷͨΒ͜ͷॲཧɺͱৼΓ͚ΔͨΊͷઃఆ
Modelͱ • ViewςϯϓϨʔτʹΛड͚ͨ͢Ίʹ ༻͞ΕΔͷ
ModelͷྲྀΕ • ControllerͰModelʹใΛ٧Ίͯฦ͢ • ModelͷதͷใView͕ݟΕΔҐஔʹ ஔ͔ΕɺViewͷΈཱͯʹΘΕΔ
ModelͷྲྀΕͷਤ ᶃ ϑϩϯτίϯτϩʔϥ %JTQBUDIFS4FSWMFU )BOEMFS.BQQJOH $POUSPMMFS 7JFX3FTPMWFS 7JFX
.PEFM greeting = "hello"
ModelͷྲྀΕͷਤ ᶄ ϑϩϯτίϯτϩʔϥ %JTQBUDIFS4FSWMFU )BOEMFS.BQQJOH $POUSPMMFS 7JFX3FTPMWFS 7JFX
.PEFM greeting = "hello" <p th:text="${greeting}"></p> .PEFM
ModelͷྲྀΕͷਤ ᶅ ϑϩϯτίϯτϩʔϥ %JTQBUDIFS4FSWMFU )BOEMFS.BQQJOH $POUSPMMFS 7JFX3FTPMWFS 7JFX
.PEFM greeting = "hello" <p th:text="${greeting}"></p> <p>hello</p> .PEFM
ϑϩϯτίϯτϩʔϥͷઃఆ • ࣗಈͰϑϩϯτίϯτϩʔϥΛ͑ΔΑ͏ʹ ͢ΔʹɺJava ConfigΫϥεʹ @EnableWebMvcΞϊςʔγϣϯΛ͚ͭΔ
Spring Boot
Spring Boot • SpringΛΑΓखܰʹɺ࠷খݶͷઃఆͰ͑Δ Α͏ʹͨ͠ϑϨʔϜϫʔΫ
Spring Boot ͷಛ • Auto Configuration • Spring Boot Starter
• Stand-alone Application • etc.
Spring Boot ͷಛ • Auto Configuration • Spring Boot Starter
• Stand-alone Application
Auto Configuration • SpringΛ༻͢Δʹ༷ʑͳઃఆ͕ඞཁ • Spring Bootʹଟ͘ͷઃఆʢJava Configʣ ͕σϑΥϧτͰ༻ҙ͞Ε͍ͯΔ •
@EnableAutoConfigurationΛ͚Δͱඞཁͳ ઃఆΛࣗಈͰಡΈࠐΜͰ͘ΕΔ
Spring Boot ͷಛ • Auto Configuration • Spring Boot Starter
• Stand-alone Application
Spring Boot Starter • Spring BootʹඞཁͳϥΠϒϥϦΛ·ͱΊͯ ͘ΕΔStarterͱ͍͏Έ͕͋Δ • ґଘؔʹspring-boot-starter-xxxΛՃ͢Δ ͚ͩͰؔ࿈͢ΔϥΠϒϥϦΛ·ͱΊͯऔಘͯ͠
͘ΕΔ
ࠓճ͏Starter • spring-boot-starter-web • webΞϓϦέʔγϣϯΛ࡞͢ΔͨΊ • spring-boot-starter-thymeleaf • Thymeleafͱ͍͏ViewςϯϓϨʔτΤϯδϯ Λར༻͢ΔͨΊ
Spring Boot ͷಛ • Auto Configuration • Spring Boot Starter
• Stand-alone Application
Stand-alone Application • jarΛੜ͢ΔࡍʹΈࠐΈαʔόΛؚΜͰɹ ͘ΕΔͷͰ୯ମͰ࣮ߦՄೳ • warΛੜͯ͠αʔόʹσϓϩΠ͠ͳͯ͘ ࣮ߦͰ͖Δ
·ͱΊ
Spring & Spring Boot ·ͱΊ • ෳͷίϯϙʔωϯτʢSpring Core, Spring MVC,
etc.ʣͷΈ߹ΘͤͰͰ͖͍ͯΔ • SpringͷࠜװDIʹ͋Γ • SpringΛΑΓखܰʹ͑ΔΑ͏ʹͨ͠ͷ͕ Spring Boot
ࢀߟࢿྉ
ࢀߟࢿྉʢWebʣ • Spring ެࣜαΠτ • https://spring.io/ • ॳΊͯͰ30Ͱ͔ΔSpring 5 &
Spring Boot 2Φʔ όʔϏϡʔ • https://www.slideshare.net/ masatoshitada7/30spring-5-spring- boot-2-103523666
ࢀߟࢿྉʢॻ੶ʣ • Springపఈೖ