Spring & Spring Boot 基本のキ / Spring & Spring Boot for Beginner
by
otty375
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Slide 1
Slide 1 text
Spring & Spring Boot جຊͷΩ 2019/02/23 #javajo @otty_375
Slide 2
Slide 2 text
Who am I? • ͍͚(@otty_375) • Javaঁࢠ෦ӡӦϝϯόʔ • Springྺ1΄Ͳ
Slide 3
Slide 3 text
SpringΛॳΊͯ৮Δํʁ
Slide 4
Slide 4 text
ࠓͷΰʔϧ • ॳΊͯͷํ • SpringΛͬͯΒ͏ • ܦݧ͕͋Δํ • ཧղΛਂΊͯΒ͏ ʘࠓޙSpringΛֶश͢Δ্ͰͷʹͳΕʗ
Slide 5
Slide 5 text
Agenda • Spring Projectͱ • Spring Core • Spring MVC • Spring Boot • ·ͱΊ
Slide 6
Slide 6 text
ϑϨʔϜϫʔΫͱ
Slide 7
Slide 7 text
ϑϨʔϜϫʔΫͱ • γεςϜ։ൃͰසൟʹΘΕΔॲཧΛఏڙͯ͠ ͘ΕΔͷ • σʔλΞΫηεɺηογϣϯཧɺೝূ etc. • ར༻͢Δ͜ͱͰϏδωεϩδοΫʹूதͰ͖Δ
Slide 8
Slide 8 text
Spring Project
Slide 9
Slide 9 text
Spring Project • Java͚ͷΦʔϓϯιʔεϑϨʔϜϫʔΫ • ෳͷίϯϙʔωϯτͷΈ߹ΘͤͰͰ͖ͯ ͍Δ • ެࣜαΠτ https://spring.io/
Slide 10
Slide 10 text
Spring Project ͷҰ෦ • Spring Framework • Spring Data • Spring Security • Spring Batch • Spring Boot
Slide 11
Slide 11 text
Spring Framework ͷҰ෦ • Spring Core • Dependency Injection (DI) • Aspect Oriented Programming (AOP) • Spring MVC • Spring Testing
Slide 12
Slide 12 text
ࠓճѻ͏෦ • Spring Core • Dependency Injection (DI) • Spring MVC • Spring Boot
Slide 13
Slide 13 text
Spring Core
Slide 14
Slide 14 text
Dependency Injection (DI) • ༁͢Δͱʮґଘੑͷೖʯ • ར༻͍ͨ͠ΠϯελϯεΛར༻͢ΔଆͰੜ ͢ΔͷͰͳ͘ɺ֎͔Βઃఆͯ͋͛͠Δ͜ͱ • ʢҙʣDIࣗମSpring͚ͩͷػೳͰͳ͍
Slide 15
Slide 15 text
DIͷྲྀΕ 1. Beanఆٛͨ͠ΒDIίϯςφʹొ͞ΕΔ 2. ར༻͢ΔଆͷΫϥεͰBeanΛΠϯδΣΫγϣϯ ͯ͠͏
Slide 16
Slide 16 text
DIͷྲྀΕ 1. Beanఆٛͨ͠ΒDIίϯςφʹొ͞ΕΔ 2. ར༻͢ΔଆͷΫϥεͰBeanΛΠϯδΣΫγϣϯ ͯ͠͏
Slide 17
Slide 17 text
Beanͱ • Spring͕ཧ͢ΔΠϯελϯεͷ͜ͱ
Slide 18
Slide 18 text
Beanఆٛͱ • Springʹཧͯ͠΄͍͠Πϯελϯεͩͱ Θ͔ΔΑ͏ʹఆٛ͢Δ͜ͱ
Slide 19
Slide 19 text
Beanఆٛͷํ๏3ͭ • XMLϕʔε • Java Configϕʔε ࠓճ͜Ε • Ξϊςʔγϣϯϕʔε ࠓճ͜Ε
Slide 20
Slide 20 text
Java ConfigϕʔεͷྲྀΕ 1. @ConfigurationΛ͚ͭͨJavaΫϥεΛ༻ҙ 2. ͦͷΫϥεʹ@BeanΛ͚ͭͨϝιουΛ࡞ 3. ͦͷϝιουBeanͱͯ͠ఆ͍ٛͨ͠ΫϥεΛ newͨ͠ͷΛΓʹͱΔ ʘ۩ମྫϋϯζΦϯύʔτʹͯʗ
Slide 21
Slide 21 text
ΞϊςʔγϣϯϕʔεͷྲྀΕ 1. Beanొ͍ͨ͠ΫϥεͩͱΘ͔ΔΑ͏ͳҹ ʢ=ΞϊςʔγϣϯʣΛ͚ͭΔ • Ξϊςʔγϣϯͷछྨ৭ʑ͋Δɹ @Controller, @Service, @Repository, @Component, etc. ʘ۩ମྫϋϯζΦϯύʔτʹͯʗ
Slide 22
Slide 22 text
DIͷྲྀΕ 1. Beanఆٛͨ͠ΒDIίϯςφʹొ͞ΕΔ 2. ར༻͢ΔଆͷΫϥεͰBeanΛΠϯδΣΫγϣϯ ͯ͠͏
Slide 23
Slide 23 text
DIίϯςφͱ • BeanΛొ͢Δॴͷ͜ͱ
Slide 24
Slide 24 text
DIίϯςφొͷྲྀΕ 1. Springىಈ࣌ʹBeanఆٛͷҹ͕͍ͭͨ ͷΛ୳͢ 2. ݟ͔ͭͬͨΒDIίϯςφʹొ͢Δ 3. ҹΛ୳͢͜ͱΛίϯϙʔωϯτεΩϟϯ ͱ͍͏
Slide 25
Slide 25 text
DIίϯςφొͷਤ ᶃ %*ίϯςφ ʢ"QQMJDBUJPO$POUFYUʣ @Service 4BNQMF4FSWJDF Ϋϥε #FBO 4BNQMF4FSWJDF ։ൃऀ͕ΞϊςʔγϣϯΛ͚ͭͯ Beanఆٛ͢Δ
Slide 26
Slide 26 text
DIίϯςφొͷਤ ᶄ %*ίϯςφ ʢ"QQMJDBUJPO$POUFYUʣ @Service 4BNQMF4FSWJDF Ϋϥε #FBO 4BNQMF4FSWJDF Spring͕ίϯϙʔωϯτΩϟϯͯ͠ BeanରΛ୳͢
Slide 27
Slide 27 text
DIίϯςφొͷਤ ᶅ %*ίϯςφ ʢ"QQMJDBUJPO$POUFYUʣ @Service 4BNQMF4FSWJDF Ϋϥε #FBO 4BNQMF4FSWJDF Spring͕BeanΛDIίϯςφʹ ొ͢Δ
Slide 28
Slide 28 text
DIͷྲྀΕ 1. Beanఆٛͨ͠ΒDIίϯςφʹొ͞ΕΔ 2. ར༻͢ΔଆͷΫϥεͰBeanΛΠϯδΣΫγϣϯ ͯ͠͏
Slide 29
Slide 29 text
ΠϯδΣΫγϣϯͱ • ΫϥεؒͷґଘؔΛ֎͔ΒೖΕͯ͋͛Δ ͜ͱ
Slide 30
Slide 30 text
ΠϯδΣΫγϣϯͷํ๏3ͭ • ϑΟʔϧυΠϯδΣΫγϣϯ • ηολʔΠϯδΣΫγϣϯ • ίϯετϥΫλΠϯδΣΫγϣϯ ࠓճ͜Ε
Slide 31
Slide 31 text
ίϯετϥΫλΠϯδΣΫγϣϯ 1. BeanΛར༻͍ͨ͠ΫϥεͷίϯετϥΫλͷ ҾʹΠϯδΣΫγϣϯ͍ͨ͠BeanΛ͠ɺ ࣗͷϑΟʔϧυʹηοτ͍ͯ͘͠ 2. ίϯετϥΫλʹ@AutowiredΛ͚ͭΔɹɹ ʢίϯετϥΫλ͕Ұͭͷ࣌লུՄೳʣ ʘ۩ମྫϋϯζΦϯύʔτʹͯʗ
Slide 32
Slide 32 text
%*ίϯςφ @Service 4BNQMF4FSWJDF @Controller @Autowired 4BNQMF$POUSPMMFS QSJWBUFpOBM4BNQMF4FSWJDFTBNQMF4FSWJDF 4BNQMF$POUSPMMFS 4BNQMF4FSWJDFTBNQMF4FSWJDF \ UIJTTBNQMF4FSWJDFTBNQMF4FSWJDF ^ ΠϯδΣΫγϣϯͷਤ ᶃ
Slide 33
Slide 33 text
%*ίϯςφ @Service 4BNQMF4FSWJDF #FBO 4BNQMF4FSWJDF #FBO 4BNQMF$POUSPMMFS @Controller @Autowired 4BNQMF$POUSPMMFS QSJWBUFpOBM4BNQMF4FSWJDFTBNQMF4FSWJDF 4BNQMF$POUSPMMFS 4BNQMF4FSWJDFTBNQMF4FSWJDF \ UIJTTBNQMF4FSWJDFTBNQMF4FSWJDF ^ ΠϯδΣΫγϣϯͷਤ ᶄ ΠϯδΣΫγϣϯ
Slide 34
Slide 34 text
DIͰԿ͕͏Ε͍͔͠ • Πϯελϯεͷ࡞ॳظԽॲཧͳͲΛɹɹ Γग़ͤΔͷͰίʔυͷݟ௨͕͠ྑ͘ͳΔ • DIίϯςφʹΠϯελϯεͷείʔϓɹɹ ϥΠϑαΠΫϧΛཧͯ͠Β͑Δ • ςετͰΠϯελϯεͷࠩ͠ସ͕͑͘͢͠ ͳΔ
Slide 35
Slide 35 text
Spring MVC
Slide 36
Slide 36 text
Spring MVC • SpringͰWebΞϓϦέʔγϣϯΛ։ൃ͢Δࡍʹ ར༻͢ΔϑϨʔϜϫʔΫͷҰͭ • MVCύλʔϯΛ࠾༻ • ϦΫΤετϚοϐϯάͳͲΛΞϊςʔγϣϯΛ ར༻ͯ͠ઃఆͰ͖Δ
Slide 37
Slide 37 text
Spring MVC ͷਤ ϑϩϯτίϯτϩʔϥ %JTQBUDIFS4FSWMFU )BOEMFS.BQQJOH $POUSPMMFS 7JFX3FTPMWFS 7JFX ᶃ ᶄ ᶅ ᶆ ᶇ ᶈ ᶉ ᶊ ᶋ ᶌ
Slide 38
Slide 38 text
Spring MVC ͷ෦ॲཧ ᶃ ֎෦͔ΒϦΫΤετ͕ͬͯ͘Δ ᶄ DispatcherServlet͕HandlerMappingʹϦΫΤετ͢Δ ᶅ HandlerMapping͕ϦΫΤετʹԠͨ͡ControllerΛฦͯ͘͠ΕΔ ᶆ DispatcherServlet͕ControllerʹॲཧΛҕৡ͢Δ ᶇ Controller͕View໊ͱModelΛฦ͢ ᶈ DispatcherServlet͕View໊ΛViewResolverʹ͢ ᶉ ViewResolver͕ViewͷશύεΛฦ͢ ᶊ DispatcherServlet͕ViewʹModelΛ͢ ᶋ ViewModelΛݩʹHTMLΛΈཱͯͯฦ͢ ᶌ ֎෦ʹHTMLϨεϙϯεΛฦ͢
Slide 39
Slide 39 text
ࠓճѻ͏෦ ϑϩϯτίϯτϩʔϥ %JTQBUDIFS4FSWMFU )BOEMFS.BQQJOH $POUSPMMFS 7JFX3FTPMWFS 7JFX
Slide 40
Slide 40 text
ࠓճѻ͏෦ ᶃ ֎෦͔ΒϦΫΤετ͕ͬͯ͘Δ ᶄ DispatcherServlet͕HandlerMappingʹϦΫΤετ͢Δ ᶅ HandlerMapping͕ϦΫΤετʹԠͨ͡ControllerΛฦͯ͘͠ΕΔ ᶆ DispatcherServlet͕ControllerʹॲཧΛҕৡ͢Δ ᶇ Controller͕View໊ͱModelΛฦ͢ ᶈ DispatcherServlet͕View໊ΛViewResolverʹ͢ ᶉ ViewResolver͕ViewͷશύεΛฦ͢ ᶊ DispatcherServlet͕ViewʹModelΛ͢ ᶋ ViewModelΛݩʹHTMLΛΈཱͯͯฦ͢ ᶌ ֎෦ʹHTMLϨεϙϯεΛฦ͢
Slide 41
Slide 41 text
Controllerͱ • HTTPϦΫΤετΛϚοϐϯάͨ͠Γɹɹɹ ྫ֎ϋϯυϦϯάΛߦ͏෦ • @Controller, @RestControllerΞϊςʔγϣϯ Λ͚ͭΔ
Slide 42
Slide 42 text
RequestMapping • Controllerʹ༻ҙͨ͠ϝιουʹ͚ͭΔΞϊ ςʔγϣϯ • ͜ͷURLʹ͜ͷHTTPϝιουͷϦΫΤετ͕ དྷͨΒ͜ͷॲཧɺͱৼΓ͚ΔͨΊͷઃఆ
Slide 43
Slide 43 text
Modelͱ • ViewςϯϓϨʔτʹΛड͚ͨ͢Ίʹ ༻͞ΕΔͷ
Slide 44
Slide 44 text
ModelͷྲྀΕ • ControllerͰModelʹใΛ٧Ίͯฦ͢ • ModelͷதͷใView͕ݟΕΔҐஔʹ ஔ͔ΕɺViewͷΈཱͯʹΘΕΔ
Slide 45
Slide 45 text
ModelͷྲྀΕͷਤ ᶃ ϑϩϯτίϯτϩʔϥ %JTQBUDIFS4FSWMFU )BOEMFS.BQQJOH $POUSPMMFS 7JFX3FTPMWFS 7JFX .PEFM greeting = "hello"
Slide 46
Slide 46 text
ModelͷྲྀΕͷਤ ᶄ ϑϩϯτίϯτϩʔϥ %JTQBUDIFS4FSWMFU )BOEMFS.BQQJOH $POUSPMMFS 7JFX3FTPMWFS 7JFX .PEFM greeting = "hello"
.PEFM
Slide 47
Slide 47 text
ModelͷྲྀΕͷਤ ᶅ ϑϩϯτίϯτϩʔϥ %JTQBUDIFS4FSWMFU )BOEMFS.BQQJOH $POUSPMMFS 7JFX3FTPMWFS 7JFX .PEFM greeting = "hello"
hello
.PEFM
Slide 48
Slide 48 text
ϑϩϯτίϯτϩʔϥͷઃఆ • ࣗಈͰϑϩϯτίϯτϩʔϥΛ͑ΔΑ͏ʹ ͢ΔʹɺJava ConfigΫϥεʹ @EnableWebMvcΞϊςʔγϣϯΛ͚ͭΔ
Slide 49
Slide 49 text
Spring Boot
Slide 50
Slide 50 text
Spring Boot • SpringΛΑΓखܰʹɺ࠷খݶͷઃఆͰ͑Δ Α͏ʹͨ͠ϑϨʔϜϫʔΫ
Slide 51
Slide 51 text
Spring Boot ͷಛ • Auto Configuration • Spring Boot Starter • Stand-alone Application • etc.
Slide 52
Slide 52 text
Spring Boot ͷಛ • Auto Configuration • Spring Boot Starter • Stand-alone Application
Slide 53
Slide 53 text
Auto Configuration • SpringΛ༻͢Δʹ༷ʑͳઃఆ͕ඞཁ • Spring Bootʹଟ͘ͷઃఆʢJava Configʣ ͕σϑΥϧτͰ༻ҙ͞Ε͍ͯΔ • @EnableAutoConfigurationΛ͚Δͱඞཁͳ ઃఆΛࣗಈͰಡΈࠐΜͰ͘ΕΔ
Slide 54
Slide 54 text
Spring Boot ͷಛ • Auto Configuration • Spring Boot Starter • Stand-alone Application
Slide 55
Slide 55 text
Spring Boot Starter • Spring BootʹඞཁͳϥΠϒϥϦΛ·ͱΊͯ ͘ΕΔStarterͱ͍͏Έ͕͋Δ • ґଘؔʹspring-boot-starter-xxxΛՃ͢Δ ͚ͩͰؔ࿈͢ΔϥΠϒϥϦΛ·ͱΊͯऔಘͯ͠ ͘ΕΔ
Slide 56
Slide 56 text
ࠓճ͏Starter • spring-boot-starter-web • webΞϓϦέʔγϣϯΛ࡞͢ΔͨΊ • spring-boot-starter-thymeleaf • Thymeleafͱ͍͏ViewςϯϓϨʔτΤϯδϯ Λར༻͢ΔͨΊ
Slide 57
Slide 57 text
Spring Boot ͷಛ • Auto Configuration • Spring Boot Starter • Stand-alone Application
Slide 58
Slide 58 text
Stand-alone Application • jarΛੜ͢ΔࡍʹΈࠐΈαʔόΛؚΜͰɹ ͘ΕΔͷͰ୯ମͰ࣮ߦՄೳ • warΛੜͯ͠αʔόʹσϓϩΠ͠ͳͯ͘ ࣮ߦͰ͖Δ
Slide 59
Slide 59 text
·ͱΊ
Slide 60
Slide 60 text
Spring & Spring Boot ·ͱΊ • ෳͷίϯϙʔωϯτʢSpring Core, Spring MVC, etc.ʣͷΈ߹ΘͤͰͰ͖͍ͯΔ • SpringͷࠜװDIʹ͋Γ • SpringΛΑΓखܰʹ͑ΔΑ͏ʹͨ͠ͷ͕ Spring Boot
Slide 61
Slide 61 text
ࢀߟࢿྉ
Slide 62
Slide 62 text
ࢀߟࢿྉʢWebʣ • Spring ެࣜαΠτ • https://spring.io/ • ॳΊͯͰ30Ͱ͔ΔSpring 5 & Spring Boot 2Φʔ όʔϏϡʔ • https://www.slideshare.net/ masatoshitada7/30spring-5-spring- boot-2-103523666
Slide 63
Slide 63 text
ࢀߟࢿྉʢॻ੶ʣ • Springపఈೖ