Spring Frameworkã¯åŸæ¥ãæã
è€éã§ãããšåæã«
é«é¡ ãªãã®ã®1ã€ãšèããããŠããŸãã ãããããã®ç 究ã«å¯Ÿããæ¢åã®ã¢ãããŒãã¯éåžžã«å¹æçã§ã¯ãããŸããã æ¥ã®ç 究
ã«å¯Ÿããæ ¹æ¬çã«
æ°ããã¢ãããŒããæäŸããããšæããŸããããã¯ã
ã¢ã¯ãã£ããªãã¥ãŒããªã¢ã«ã®æŠå¿µã䜿çšããããšããæããŸãã ãããã¯ãéçºè
ã®æ³šæããµããŒããããã¬ãŒã ã¯ãŒã¯ã®ç¹å®ã®åŽé¢ãã¬ã€ããããã©ã³ã¹ã®åããäžé£ã®æ瀺ã§ãã
ãã®çµæã
éäžãã¬ãŒãã³ã°ãè¡ãããŸãããstè¿·ããããšãªãããã©ãã§äœ¿çšãããããšããã¿ã€ãã®èª€è§£ã®åé¡ããããçè«ãéå±ã§ååçã«èªãããšããããŸããã 絶察ã«ã
ãã®èšäºã§ã¯ã
Spring Jdbc / Transactionsãèªå®ã«å¿
èŠãªç¥èã®50ïŒ
ã§ã«ããŒãã5ã€ã®æè²ã¿ã¹ã¯ã玹ä»ããŠããŸãã ãã®èšäºã®äž»ãªã¿ã¹ã¯ã¯ãã¢ã€ãã¢èªäœã倧èŠæš¡ã«ãã¹ãããããšã§ãããŸããããªããšäžç·ã«ããã¹ãŠã®ãããã¯ã«ã€ããŠå€æ°ã®ãŠããŒã¯ãªã¿ã¹ã¯ãéçºããŸãã
ãŸããããªãèªèº«ã«ã€ããŠå°ãã ç§ã®ååã¯Yaroslavã§ããEPAMSystemsã®Middle Java Developerã§åããŠããŸãã ç§ã®è¶£å³ã®1ã€ã¯ããã¬ãŒãã³ã°ã·ã¹ãã ïŒåŠå£«å·ã修士å·ïŒã®äœæã§ãã éå»4幎éãããŸããŸãªç¥èåéïŒJava / Springãå«ãïŒãæããããã«100ãè¶
ããæãå€æ§ãªã¢ãããŒããè©Šãããããã®ã¢ãããŒãããã¹ãããããã«20以äžã®ãããã¿ã€ãããã°ã©ã ãäœæããŸããã ãããã®ã»ãšãã©ã¯ã¹ãŒããŒãããã£ããããããããªãã£ãã®ã§ãç§ã¯ãã®æ¹åã§åãç¶ããŸãã
ãã®èšäºã¯ç§ã®
çè«ã® 1ã€ã«æ§ããããŠããŸãã 培åºçã«ãã¹ãããå¿
èŠããããŸããããããã®èšäºã®ç®çã§ãã ä»åŸã¯ãäœãå±æ©ã«understandããŠããã®ããç解ããããã«ãã¿ã¹ã¯ã®ããWebããŒãžã«ã¢ã¯ã»ã¹ããããšããå§ãããŸãïŒ
https://kciray8.imtqy.com/KciTasks/App/src/ ïŒã
ç§ã¯å®ç§äž»çŸ©è
ã§ããããã¬ãŒãã³ã°ãå®ç§ã«è¿ãããšãæãã§ããŸãã ç§ã®ç解ã§ã¯ãããã¯è² ã®ææ
ãé
延ãåŒãèµ·ããããåã³ããããããããªãã¬ãŒãã³ã°ã§ãã æ®å¿µãªãããå€ãã®ææ°ã®ïŒãããŠé«é¡ã®ïŒæè¡ã®ç 究ã¯
å°é£ã§ãã Spring Frameworkã¯äŒçµ±çã«åŠç¿ããã®ãæãé£ãããšèããããŠããããã®ç 究ã¯éåžžã«éå¹ççã§ãã
éåžžãæ¥ã¯åŠã°ãã
ãã¬ãŒã ã¯ãŒã¯ã«ã€ããŠåŠç¿ããã«ã¯ã2ã€ã®æ¥µç«¯ãªæ¹æ³ããããŸãã 1ã€ã¯ããã人ãäŒç€Ÿã§åããŠã顧客ãäžããã¿ã¹ã¯ãåçŽã«è¡ããšãã§ãã
ããã¯é
ããéåžžã«é
ãéçºæ¹æ³ã§ãããã»ãšãã©ã®éçºè
ã¯ããã«åŸããŸãã ç¹ã«åœŒãããããæ¯æããšãã圌ããå°ããããšã ããããããšã¯è«ççã§ã¯ãããŸãããïŒ ãã ããå®å°èšç·Žã¯å¹æçã§ãããšæãããŸãã çŸä»£ã®ããã°ã©ãã解決ããã¿ã¹ã¯ã®ã»ãšãã©ã¯ãã·ã¹ãã ã®ã¡ã³ããã³ã¹ã§ãã ãã¹ãŠããã§ã«ç§ãã¡ã®åã«æžãããŠããŸããããªãã¯ãã ãã°ãä¿®æ£ããèšå®ãç·šéãããã¡ã€ã«ã§ã·ã¹ãã ãä¿®æ£ããå¿
èŠããããŸãã ããã«ã¯äœã®åé¡ããããŸãããããã¯ãããžãŒèªäœã®åŠç¿ã¯éåžžã«é
ãã§ãã ãã¡ãããé
ããæ©ãããæ¥ã®ããã¥ã¡ã³ããæãäžããå¿
èŠããããå¿
èŠãªãã®ã¯ãã¹ãŠèŠããŠããŸããããã
ã«ã¯äœå¹ŽãããããŸãã ãã¶ããæåã«ç¥èãšçµéšããç©ã¿äžãããããããå®éã®ã¿ã¹ã¯ãããè€éã«ïŒãããŠãã¡ãã倧å¹
ã«é«ã絊æã®ããã«ïŒè©Šã¿ãããšã¯äŸ¡å€ãããã§ããããïŒ ïŒJavaã§ç¢ºå®ã«åäœããŸã
ã2ã3ãæã§Java SEã
æå³çã«åŠç¿ã§ããŸããããã¯1ã2幎ã®çµéšã«ã«ãŠã³ãã§ããŸãããããè¡ã£ãå€ãã®å€§åŠã®å人ïŒã
2ã€ç®ã¯ã
éäžãã¬ãŒãã³ã°ã§ãã ããã¯ç°¡åã§ãããéåžžã«é£ããæ¹æ³ã§ãã ããã¯ã人ãæ¬ïŒãŸãã¯ã³ãŒã¹ïŒãé²ããŠããããããå®è·µããäœããã®åœ¢ã§èŠããããšãããšããäºå®ã«ãããŸãã ãŸãããã®ã¢ãããŒããJava SEã§ãŸã äœããã®åœ¢ã§æ©èœããå Žåã¯ããã¹ãŠãã°ãã§éãã¿ã€ãã§ãã æé«ã®æ¬ã§ããããããã®æ©èœããããã®æ©èœã
æ£ç¢ºã«é©çšããå Žæã«ã€ããŠèª¬æãããŠããªãããšããããããŸãããèªåã§è¿œãã€ãå¿
èŠããããŸãã
ããããããã§æãåä»ãªããšã¯ ããã®ãããªåªåã«ãã£ãŠåŸãã
ãæ
å ±ãå¿ããããšã§ã ã åŠç¿äžã®åé¡ã®1ã€ã¯ãå¹æçãªç¹°ãè¿ãã®æ¬ åŠã§ãã æ¥ãå€å
žçãªæ¹æ³ã§å匷ããå ŽåïŒããšãã°ãæ¬ãèªãã§å®éã«ã³ãŒããè©ŠããŠã¿ãå ŽåïŒãããã«ã¯å€å€§ãªåŽåãè²»ããããŸããããå埩ã®å¯èœæ§ã¯ãããŸããã§ããã 1ã2幎ã§æ¬ãç°¡åã«èªã¿çŽããŠãå¿ããããæ
å ±ã¯è¿ãããŸããïŒç·Žç¿ãšäžŠè¡ããŠèªãã æ
å ±ïŒã ããã€ãã®ãžã¬ã³ãããããŸã-å€ãã®ç·Žç¿ãããããã«ãããã©ã®ããã«äœãããšãã§ããŸãããåæã«ããã°ã©ããŒã¯é©åãªé åã«ãåãã£ãŠãããŸããïŒ
åŠç¿ã®åé¡
ãããã£ãŠãåŠç¿ã®æ¥µç«¯ãã¯æªããšããçµè«ã«éããŸããã ããã»ã¹ãæé©åããæ¹æ³ã«ã€ããŠèããŠã¿ãŸãããã
ã¿ãŒã²ããåŠç¿ã¯ãããã«çºå±ããå¿
èŠãããæ£ããèãã®ããã§ãã ãããã»ãšãã©ã®äººã«ãšã£ãŠå°é£ãåŒãèµ·ããçç±ãããã«è©³ããèããŠã¿ãŸãããã
ãŸããåŠç¿ã«å€ããè³æãéžæããŸãã ãããã®äž»ãªèŠä»¶ã¯ãéãããæ
å ±ã»ããïŒèªå®/é¢æ¥/ç·Žç¿ã«å¿
èŠãªãã®ã®ã¿ïŒãããã³ãã®æ
å ±ã®äžè²«ããè«ççã«çžäºæ¥ç¶ããããã¬ãŒã³ããŒã·ã§ã³ã§ãã ãããã®åºæºã«ãããšãæ¬ã¯æé©ã§ãïŒ
Spring in action ã
Julianaã®èªèšŒããã¥ã¢ã«ãªã©ïŒãéåžžã«ããèããããŠèšèšãããŠããŸãïŒç§ã®æèŠã§ã¯ãudemyã§ã®ã¹ããªã³ã°ã«é¢ãããããªã³ãŒã¹ãããã¯ããã«è¯ãã詳现ã§ãïŒã èªåèªèº«ã«èªãã§ãæãäžããŠã¿ãŠãè©ŠããŠã¿ãŠãã ãããç¥èããããŸãã ããããããã«ãããŸããã
äºå®ã¯
ãæ¬ãèªãã§ãã®äžã®çè«ãåæãããŸãã«ããã»ã¹ãå®éã«ãã®çè«ããã¹ãããããã»ã¹ãšéåžžã«äžååã«æŽåããŠãããšããããšã§ãã
圌ã¯èªç¶ã§ã¯ãªã ã æ¬ãå®ç§ã§ãã£ãŠããæ¬ã®ãŸãŸã§ãã æ¬è³ªçã«ããã°ã©ãã³ã°ãæããããšãæå³ãããã®ã§ã¯ãããŸããã ããã°ã©ããŒã¯ãæçµçã«ãç¹å®ã®ãã¬ãŒã ã¯ãŒã¯ãã¯ãããžãŒã
æèçã«äœ¿çšããããã®è¯ãç¿æ
£ãæ§ç¯ããå¿
èŠããããŸãã
ãèªãã§ç解ããããšããããé©çšããæ¹æ³ãç¥ã£ãŠãããã©ããç¥ã£ãŠããããã®éã«ã¯ã倧ããªã®ã£ããã圢æãããŸãã ãããå
æããã«ã¯ãããªãã®åªåãããªããã°ãªããŸããã æ£çŽã«èšã£ãŠãSpringã§ããªãå€ãã®Webã¢ããªã±ãŒã·ã§ã³ãäœæããŸããããSpring in Actionã®ç« ãèªãã®ã¯ãŸã 倧å€ã§ããã çŸæç¹ã§ã¯ãäž¡æ¹ã®æžç±ã®çŽ30ïŒ
ã詳现ã«è§£æããŠãããSpring 5ã®èªå®è³æ ŒãçŽ60ïŒ
ååŸããæºåãã§ããŠããŸãã
2014幎ã«Android SDKã調ã¹ããšãã«ãåæ§ã®åé¡ãèŠãããŸããã ããã§ã®çãã¯éåžžã«ç°¡åã§ã-åãã¬ãŒã ã¯ãŒã¯ã¯ç¬èªã®ããã€ãã®æ°ããæŠå¿µãå°å
¥ããŸãããããããç解ããããããéããŠèããããšã¯ããªãå°é£ã§ãïŒåŸæ¥ã®æè²æ¹æ³ã䜿çšããŠããå ŽåïŒã
æ¬ã«ç€ºãããŠããæ
å ±ãšç¿æ
£ãçµã³ã€ããããã»ã¹ã¯éåžžã«é£ãããå¹æçã§ã¯ãããŸããã å€ãã®å Žåãå€ãã®åŠå®çãªææ
ãåŒãèµ·ããïŒäœããæ©èœããªãããŸãã¯éå§ããªãå ŽåïŒãGoogleããããã䜿çšããŠåé¡ã解決ããŸãã
éçºè
ãå°ããé©åãªè§£æ±ºçã瀺ãããããäœæããããã®ããã¹ïŒãã¬ã€ã«ïŒããäœæããããšã¯æ¬åœã«äžå¯èœã§ããïŒ çµå±ã®ãšãããçµéšè±å¯ãªéçºè
ã¯ãã®ãããªãã¹ãããç¥ã£ãŠããŸãã 圌ãã«ãšã£ãŠãããã¯æãããªããšã§ãã ããããããã§ã¯ç¥èã®ç§»è»¢ãšãã圢ã§åé¡ãçºçããŸãã ãã§ã«ããã£ãŠããããã«ãæ¬ã¯ãã®ç®çã«ã¯é©ããŠããŸããã
ç§ã泚ç®ãããããäžã€ã®åé¡ã¯ã
ç¹°ãè¿ãã®
åé¡ã§ã ã ãã¹ãŠã®å°é£ãå
æããæ¥ã®ç¥èãåºãããšããŠããæéãçµã€ã«ã€ããŠããããã¯æ¬¡ç¬¬ã«æ¶ããŠãããŸãïŒçŸåšã®ã¿ã¹ã¯ã«é¢é£ããŠããããšãå€æããããããªå²åã¯å¥ãšããŠïŒã å¿ããã®ã¯äººéã®æ¬æ§ã§ãããäœãããããšãã§ããŸããã ã§ããããšã¯ãç¹°ãè¿ããæé©åããããšã ãã§ãã ç§ãåŠå£«å·ãååŸããŠãããšããééã®ç¹°ãè¿ãã®çè«ãšãã©ãã·ã¥ã«ãŒãã®åœ¢ã§ã®ç¥èã®ä¿åïŒ
åŠå£«å·ã«é¢ããKhabrostatyaïŒã«å€§ããªæåŸ
ããããŸãã ã ãã ãããã©ãã·ã¥ã«ãŒãã¯äºãã«ç¬ç«ããããŠããŸãïŒé¢é£ããSpringã®ç¥èãä¿åããã«ã¯é©ããŠããŸããïŒã JavaãåŠç¿ããå Žåã§ãããã®æå¹æ§ã¯å¹³åã§ãã ã¯ãããŸããããã°ã©ããŒã¯
ç·Žç¿ãç¹°ãè¿ãå¿
èŠããããããããããèªç¶ã§ã¯ãããŸããã
é·å¹Žã«ããã£ãŠããã¬ãŒãã³ã°ã100ïŒ
å®è·µã«çµã³ä»ããæ¹æ³ã«é ãæ©ãŸããŠããŸããïŒ
çµæãšããŠãéå±ã§ã¯ãªããé«å¹ç㧠ïŒã 次ã«ãè©Šãããªãã·ã§ã³ã«ã€ããŠç°¡åã«èª¬æããŸãã æåã«ãã¿ã¹ã¯ãšã¯å¥ã«ãæè¡çãªãã³ããæäŸãã
詳现ãªãã¬ãŒãã³ã°TKã®ã»ãããèŠã€ããããšããŸããïŒã¯ã©ã¹ãªã©ã䜿çšããŠREST APIãéçºããã«ã¯ïŒã ç§ã¯è³¢æãªãã®ãèŠã€ãããããå€ãã®æéãè²»ãããŸããã ã¯ããæ¥ã®ããã€ãã®éšåã§å¥ã
ã®ãªãŒãµãªã³ã°ã³ãŒã¹ãèŠãŸããããå®å
šãªèªå®è³æ Œãã©ãã«ãéããæ¹æ³ã¯ãããŸããã ã¯ãããããã®ãã¥ãŒããªã¢ã«ã®ãæ¬ãã®åé¡ã¯æ®ã£ãŠããŸãïŒäžéšã®èè
ã¯æ®µéçãªããã¥ã¢ã«ãäœæããããšããŸããããäŸç¶ãšããŠæ¬ ç¹ããããŸãïŒã PSïŒæ¥ã« "Training TOR"ã®ãããªãã®ããæã¡ã®å Žåã¯ãkciray8 @ gmail.comã«éã£ãŠãã ããã
æžç±ããã¥ãŒããªã¢ã«ã®åé¡ã®1ã€ã¯ãéåžžã«éå±ã§éå±ãªããšã§ãã ããã¯ãGoogleã®ãã°ãããããã«èŠçã§ãã èªã¿ãããªããã³ãŒãã£ã³ã°ãããïŒ
ãããã¯ãšã¯ã©ã¹åã«é¢ãããã³ãã®ã¿ã«ãã®æ¬ã䜿çšããèªåã§ïŒå®éšãšGoogleãä»ããŠïŒä»ã®ãã¹ãŠã«è¿œãã€ããšãããã©ãã§ããããã ãããŠããã®ç« ãèªã¿çŽããŠãããèªäœãå§åããæ®ãã®ç¥èãåéããŸãã å®éãç§ã¯æ¥ãå匷ããŸããã ãã®ç« ã®æåïŒéå±ãªçŽ¹ä»ïŒããã§ã¯ãªããçãäžãããäœããã€ããã§ããã®åšãã§å®éšããããšããŠããŸãã
IDEã¯ããªãŒãã³ã³ããªãŒããJavaDocãšãœãŒã¹ã®è¡šç€ºã䟿å©ãªãããã°ã®å©ããåããŠãããã«å€§ãã«åœ¹ç«ã¡ãŸãã ããããAPIå®éšåŠç¿ããšåŒã³ãŸã ã ç§ã¯ãã®æ¹æ³ãäžå¿ã«å€ãã®ç¹å¥ãªæè¡ãéçºããŸããããããã€ãã®æ ¹æ¬çãªåé¡ãæ®ã£ãŠããŸãã
ããªãã¡ããstè¿·ãã®åé¡ã¯æ¶ããŸããã ããã¯ãŸã å€ãã®çã¿ãåŒãèµ·ãããŸãããããã¯ãã§ã«ããèªç¶ã§å®è·µã«è¿ããã®ã§ãïŒå®éã®ãããžã§ã¯ãã§ã¯ãå€ãã®ãã®ãããªstè¿·ã決å®ããå¿
èŠããããŸããããã¯ã¹ãã«ãé«ããã®ã«åœ¹ç«ã¡ãŸãïŒã
å®éããã®ææ³ã䜿çšãããšãæçµçãªç®æšïŒèªå®ïŒãéæã§ããŸãã ãã ããããã«ã¯å€ãã®åŽåãå¿
èŠã«ãªãããã©ãã¯ã«æ²¿ã£ãŠæ©ãå Žåã®3ã4åã«ãªããŸã ã ã¯ããç¹°ãè¿ãæ
å ±ã®åé¡ãæ®ã£ãŠããŸãã ãããŠãç§ã¯çæ³ã«è¿ãäœããããããšæã£ãŠããŸãã çªç¶ãç§ã®æ°ãããã¯ããã¯ã¯å€ãã®äººã
ã«åœ¹ç«ã¡ãäžçãå€ããã§ããããïŒ ãããŠã2017幎ã®çµããã«ããã®ãããªã¢ã€ãã¢ãæãã€ããã®ã§ãããã«ãããå®è£
ãããã£ãã®ã§ãæåã¯æåã«å¯ŸããŠéåžžã«å€§ããªè³ããããŸããã
å€å
žçãªïŒäž»ã«ååçïŒãã¥ãŒããªã¢ã«ã®åŠç¿æ¹æ³ã«ã€ããŠèããŠã¿ãŸãããã
Springã®ãã¥ãŒããªã¢ã«ã®ã»ãšãã©ã¯ãåçŽã«ãã®æ§é ã«ããããããŠããŸã ïŒspring.ioã®ã¬ã€ããå«ãïŒã ç§ãèããããªãæ倧ã®æ¬ ç¹ã¯ãçŽç·æ§ã§ãã å€ãã®èè
ã¯ãèªåèªèº«ã«ã³ããŒããå¿
èŠããã倧ããªã³ãŒããããã³ããããŸãã ç°¡åãªäŸïŒå®è¡ããŠå®éšã§ããæå°ã®ãã¢ã³ã¹ãã¬ãŒã·ã§ã³ïŒããå§ããŠãããŸããŸãªæ©èœãè¿œå ããæ¹ãæ£ããã§ãããã
ãåçŽãªãã®ããè€éãªãã®ãžããšããååã¯ãåŠç¿ã®é»éåŸã§ãïŒ ãããããããçµå±ã®ãšããã åäœæè
ã¯ãå¿
èŠãªæ
å ±ã®2ã4åã®æ
å ±ãåéããæççã«å解ããŠããå®è¡ããå¿
èŠããããšèããŠããŸãã
ããšãã°ãæ¥ã«SOAPãµãŒãã¹ãäžããããã®ã¬ã€ããéããŸãïŒ
https://spring.io/guides/gs/produce-web-service ãæè¿è·å Žã§å¿
èŠã«ãªããŸããïŒã ããã§ã¯ãgradleã䜿çšããŠJavaã¯ã©ã¹ãçæããããã»ã¹ãšãSpring-Bootãšwsdl4jã®äž¡æ¹ãšãã¡ã¢ãªå
ãªããžããªå
šäœã®CountryRepositoryããã蟌ã¿ãŸããïŒãã ããåçŽãªãHello worldãè¡ã§ååã§ãïŒã ãããŠæåŸã«ã ãã圌ãã¯curlã䜿çšããŠãã®ã·ã¹ãã å
šäœãèµ·åããæ¹æ³ã説æããŸããã ãããããã¡ããç§ã¯ãã¹ãŠãç解ããŠããŸã-èè
ã¯ããªãŒã«ã€ã³ã¯ã³ãã®æ確ãªäŸãæããŠãããå解ãããã£ãã®ã§ãã ããããæ
å ±ã
ç解ãããšãã芳ç¹ããã¯ããã®ã¢ãããŒãã¯é©åã§ã¯ãããŸããã
éå±ãªè§£æããèªã¿ããã³ãŒãã®äžéšãã³ããŒïŒããŒã¹ãããã®ã奜ãã§ããïŒããããåããŒãžïŒã ææ
¢ã§ããªãã ããã§ãå®éšçã«çµéšãç©ã¿ããã®ã§ãããããã ãã§ãã
ã¢ã¯ãã£ããã¥ãŒããªã¢ã«ã®ã¢ã€ãã¢ïŒKciTasksïŒ
ãããã
ãã ããªã©ã®å°ããªæ瀺ãäžãããããªä»®æ³ã®æåž«ãäœããããã°ã©ããŒããã¹ãç¯ãããå¿ããå Žåãæåž«ã¯ã³ãŒããæž¡ãã ãã§ãã åºæ¬çã«ãksi-taskiesã¯ãã®ãããªãã®ã§ãã 圌ãã®æ¬è³ªã¯ãç§ãã¡ãå°ããªæ瀺ã®ã»ãããæã£ãŠããããšã§ããããããã®æ瀺ã«ã¯çãããããããã¯ãã¿ãã¬ïŒé ãïŒã®äžã«ãããŸãã ããããšéåžžã®ãã¥ãŒããªã¢ã«ã®éãã¯ã次ã®ãã£ãŒãã§èŠãããšãã§ããŸãã
çœçŽã®ãããžã§ã¯ãã³ã³ã»ãã
ã¢ã¯ãã£ããªãã¥ãŒããªã¢ã«ã®åæãç¶ããåã«ãããããåºã¥ããŠãã1ã€ã®éèŠãªæŠå¿µã«ã€ããŠã話ããããšæããŸãã ãã®æŠå¿µã¯ãããããæè²æ¹æ³è«ãšçµã¿åãããŠäœ¿çšââã§ããŸãããäœããã®çç±ã§ãã©ããã§èšè¿°ãŸãã¯èšåãããããšã¯ãã£ãã«ãããŸããã ãã®ããã
ãã¬ãŒãã³ã°ãããžã§ã¯ãã¯æåããè¡ãå¿
èŠããããŸã ã start.spring.ioã¯ãããŸãããæ¯æ¥
[ãã¡ã€ã«]-> [æ°ãããããžã§ã¯ã]-> [Hello world]ã«ã¢ã¯ã»ã¹ããŠãWebãå«ããã¹ãŠã®ãããžã§ã¯ããããŒã¹ã«ããŸãã ãŸãããã¹ãŠã®MavenäŸåé¢ä¿ãæ°ããæ¹æ³ã§ã¹ã³ã¢ãªã³ã°ãããŸãã ããã«ãããã¹ããªã³ã°ã¢ãžã¥ãŒã«éã®äŸåé¢ä¿ããããããå¿
èŠãªçç±ãªã©ãæãåºãããšãã§ããŸãã å®éã«ã¯ãããã¯ããçš®ã®äŸåé¢ä¿ã®åé¡ããããšãã«äŸ¿å©ã§ãã
å®çšçãªçŠç¹
XMLã¯å¥œãã§ããïŒ äž¡æ¹ã®Springæ¬ã®èè
ã¯ãé
ããæ©ããXMLãéå»ã®éºç©ã«ãªãããšã«åæããŸãã ãã ãããããèªäœãã»ãšãã©ã®ãœãªã¥ãŒã·ã§ã³ã2ã€ã®ããŒãžã§ã³ïŒXML +ã¢ãããŒã·ã§ã³ïŒã§æäŸããŸãã 倧äŒæ¥ã«å°±è·ãããŸã§XMLã¯å¥œãã§ã¯ãããŸããã§ããã ä»ãããã¯ä»äºã®ã»ãã®äžéšã§ãã åçŽã«XMLãããããXMLã䜿çšããã«æžãæããæ¢è£œã®ãœãªã¥ãŒã·ã§ã³ãããŸãã«ãå€ãäœæãããŠããŸããå€ãã®ãéãè²»ãããæ¯é¡ã®ãªãã»ã©å°ãªããã®ãäœæããŠãã ããã 誰ããããããŸããã ãã®ããã
ã¿ã¹ã¯ã§XML /泚éã代æ¿ããããšãè©Šã¿ãŸããããããããå§ãããŸã ã ïŒèšäºã§èª¬æãããŠããææ³ã䜿çšããŠïŒæ£ããåŠç¿ããã°ãXMLã¯åé¡ãåŒãèµ·ããããšã¯ãããŸããããå察ã«ãå察åŽããããã€ãã®è§£æ±ºçãæ€èšããã®ã«åœ¹ç«ã¡ãŸãã XMLã³ãŒãã®äœæïŒIDEã䜿çšãããªãŒãã³ã³ããªãŒããšããŒã«ãããã䜿çšïŒã¯ãJavaã³ãŒãã®äœæãšåãããã楜ããã§ãã
çæ³ã«è¿ã¥ãïŒ0.5ïŒ
ã³ããŒã¢ã³ãããŒã¹ãã5ïŒ
èªã¿åãïŒ
ã¢ã¯ãã£ããªãã¥ãŒããªã¢ã«ã®ååœä»€ã¯ãã³ããŒã¢ã³ãããŒã¹ããªãã§å®è¡å¯èœã§ãªããã°ãªããŸããã ææ°ã®IDEã§ã¯ããŒããæããããšãã§ããŸãã ã¯ãããã¹ãŠã®å©ç¹ãåãã
beans.xmlã§ããã
äŸåé¢ä¿ã-ãã¹ãŠIDEå
ã§å®è¡ã§ããŸãã ããã¯ãã³ãŒããç¡æèã«ã³ããŒãã
ããã
ã¯ããã«åªããŠããŸãã ç§ãèšã£ãããã«ãç§ã¯åŠç¿ã楜ãããã®ã«ããããšæã£ãŠããŸããããã¯çç¶ã®äžã€ã§ãã
xi-taskã®
ååœä»€ã¯ãå°ãèããŠäœããèŠããããŸãã ããããã®ãã¥ãŒããªã¢ã«ã®ãã¢ã¯ãã£ããã£ãã§ãã ãã®ããã»ã¹ã¯ãã³ãŒãã®èªã¿åããã³ããŒãããã¯ããã«åªããŠããŸãã ããã§ãã©ã³ã¹ãç¶æããå¿
èŠããããŸã-åœä»€ã¯ããŸãã«ãæãã§ã¯ãªãã¯ãã§ãïŒãããªããã°ããã»ã©è¯ããªãã§ãããïŒããããŠããŸãè€éã§ã¯ãããŸããïŒããã¯ãã¥ãŒããªã¢ã«ãšåæ§ã«å€§ããªã³ãŒããšåé¡ã䌎ããŸãïŒã ç§ã¯å€ãã®ç°ãªããã¬ãŒãã³ã°ã·ã¹ãã ãèŠãŠããŸãããããã®ãããªéçºãèŠãããšã¯ãããŸããã
ã¢ã¯ãã£ããã¥ãŒããªã¢ã«çšç¹å¥èšèªïŒKMLïŒ
ãããŸã§ã¢ã¯ãã£ããªãã¥ãŒããªã¢ã«ã誰ãé
åžããŠããªãçç±ã®1ã€ã¯ãããããä¿åããããã®ãã©ãŒãããããªãããšã§ãã
æ¢åã®ããŒã¯ã¢ããèšèªã¯ãã³ãŒããšããã¹ãã®æ··åšã«ã¯ãŸã£ããé©ããŠããŸãã ã KciTasksã®æåã®ããŒãžã§ã³ãHTMLã®ã¢ããªã³ãšããŠäœæããŸããããããã¯éåžžã«äžäŸ¿ã§ããïŒ æ¬¡ã«ãèªåã§å°ããªããŒã¯ã¢ããèšèªãäœæããŸãããããã¯ã·ã£ããã«ã«æé©ã§ãHTMLã«ã³ã³ãã€ã«ãããŸãã ãããŠãããã¯WebããŒãžã®ããŒãæã«çºçããŸãã 以äžã«äŸã瀺ããŸãã
äŸ1-JdbcTemplate Beanã®äœæ
=Create a @@JdbcTemplate@@ as a @@@Bean@@ with @@DataSource@@ injected into it +Main.java @Bean JdbcTemplate getJdbcTemplate(DataSource dataSource){ return new JdbcTemplate(dataSource); }
äŸ2-schema.sqlãã¡ã€ã«ã®äœæ
=Create a file ~~schema.sql~~ with a DDL-statement for creating a new table ##Product## (name, price) +schema.sql CREATE TABLE Product(name VARCHAR(100), price DOUBLE)
å®å
šãªã¿ã¹ã¯ã®äŸïŒJdbcTemplate2.kmlïŒ ###name=Jdbc template and datasource part 2 ###full = JdbcTemplate2.zip =Create a spring-based modern application ==Create a Java project from scratch using your favorite IDE +<<MainEmpty ==Add ##maven## support to it ==Annotate class @@Main@@ as a configuration (with automatic scan) +<<spring-context +<<MainConfiguration ==Create a ##run## method inside the @@Main@@ class +Main.java void run(){ } ==Create a new context and call @@Main.run()@@ +Main.java public static void main(String[] args){ AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(Main.class); context.getBean(Main.class).run(); } =Add Apache Derby as a @@@Bean@@ using builder (embedded) +<<derby +<<spring-jdbc +Main.java @Bean public DataSource dataSource(){ return new EmbeddedDatabaseBuilder().setType(EmbeddedDatabaseType.DERBY).build(); } =Create @@JdbcTemplate@@ as a @@@Bean@@ and inject @@DataSource@@ into it +Main.java @Bean public JdbcTemplate jdbcTemplate(DataSource dataSource){ return new JdbcTemplate(dataSource); } =Retrieve the url from ##JdbcTemplate## and print it to the console +Main.java @Autowired JdbcTemplate jdbcTemplate; +Main.java void run(){ String url = jdbcTemplate.execute((ConnectionCallback<String>) con -> con.getMetaData().getURL()); System.out.println(url); } =Run the application and ensure that the url contains "derby" +Output jdbc:derby:memory:testdb =Create a file ~~schema.sql~~ with a DDL-statement for creating a new table ##Product## (name, price) +schema.sql CREATE TABLE Product(name VARCHAR(100), price DOUBLE) =Create a file ~~test-data.sql~~ with a few DML-statements that insert distinct products +test-data.sql INSERT INTO Product VALUES('Milk', 3.5) INSERT INTO Product VALUES('Eggs', 6) =Inject ~~schema.sql~~ and ~~test-data.sql~~ into the ##Main## class as spring-resources +Main.java @Value("schema.sql") Resource schema; @Value("test-data.sql") Resource testData; =Create a resource-based database populator and use it to init the database +Main.java ResourceDatabasePopulator populator = new ResourceDatabasePopulator(); populator.addScript(schema); populator.addScript(testData); DataSourceInitializer initializer = new DataSourceInitializer(); initializer.setDatabasePopulator(populator); DatabasePopulatorUtils.execute(populator, dataSource); =Retrive the names of the products to a list and print it +Main.java List<String> productNames = jdbcTemplate.queryForList("SELECT name FROM Product", String.class); System.out.println(productNames); =Run the application and ensure that the names of the products were printed accordingly with ~~test-data.sql~~ +Output [Milk, Eggs] =Create a domain object @@Product@@ (with custom !!toString!!) +Product.java public class Product { String name; Double price; @Override public String toString() { return "Product{" + "name='" + name + '\'' + ", price=" + price + '}'; } } =Retrieve a @@List<Product>@@ using a row mapper and print it +Main.java List<Product> products = jdbcTemplate.query("SELECT * FROM Product", (RowMapper<Product>) (rs, rowNum) -> { Product product = new Product(); product.name = rs.getString("name"); product.price = rs.getDouble("price"); return product; }); System.out.println(products); =Create a class with name @@ProductSet@@ that has a list of products as its member +ProductSet.java public class ProductSet { public List<Product> products = new ArrayList<>(); } =Retrieve a @@ProductSet@@ using a result set extractor and print its products +Main.java ProductSet productSet = jdbcTemplate.query("SELECT * FROM Product", (ResultSetExtractor<ProductSet>) rs->{ ProductSet set = new ProductSet(); while (rs.next()){ Product product = new Product(); product.name = rs.getString("name"); product.price = rs.getDouble("price"); set.products.add(product); }; return set; }); System.out.println(productSet.products); =Run the application and ensure that the products was printed correctly (two times) +Output [Product{name='Milk', price=3.5}, Product{name='Eggs', price=6.0}] [Product{name='Milk', price=3.5}, Product{name='Eggs', price=6.0}]
ã€ã³ã¿ãŒãããã«ã¯ã蚌ææžãå¿
èŠãã©ããã«ã€ããŠã®holivarããããŸãã ããã«ã€ããŠã¯å¥ã®èšäºãæžãããšãã§ããŸããããã®èšäºã®ãã¬ãŒã ã¯ãŒã¯ã§ã¯ã
ãã§ããéãå¿
èŠããšæžããŸãã 1ãæåãSpring 5 Study GuideïŒããã³
éèŠãªè©Šéšèªäœ ïŒãçºè¡šããããããããã«çŠç¹ãåœãŠãããšã¯çã«ããªã£ãŠããŸãã ç§ãã¡ã«ãšã£ãŠãããã¯é¢æ¥ã§å°ããããããªãã®ãããžã§ã¯ãã«åœ¹ç«ã€ãããããªãã
èšç» ããŸãã¯ããã€ãã®æšæºã»ãããšããŠåœ¹ç«ã¡ãŸãã
ãããã¯ããšã«ãå¿
èŠãªç¥èã®éã«åœ±é¿ãäžããããŸããŸãªèŠ³ç¹ããæ
å ±ãæäŸãã6ã8åã®äžæã®ã¿ã¹ã¯ãå®è¡ããå¿
èŠããããŸãïŒããšãã°ã
DataSourceã¯ããŸããŸãªæ¹æ³ã§äœæãããŸãããªã©ïŒã ãã¬ãŒãã³ã°ãçµãããšãããã°ã©ããŒã¯
DataSourceãäœã§
ãã ãã©ã®ããã«äœ¿çšããããã確å®ã«èŠããŸãïŒå€ãã®å Žåã
ãåŠç¿ãåæ Œãå¿åŽãã®ä»£ããã«ïŒã ããã«ããããã¯ã¯ãã°ãã°éè€ããŸãïŒSpring Dataã§ã¯ã³ã³ãããšAOPã䜿çšãããŸãïŒã ããã«ãããåºæ¬ãéåžžã«æ·±ãããããšãã§ããŸãã
ããŒã¯ã¢ããèšèªã«ããããã»ã¹ã®æ倧éã®èªååã«ããããããã
ã±ãŒã·ã³ã°ã®
éçºã¯äŸç¶ãšããŠéåžžã«æéã®ãããã¿ã¹ã¯ã§ãã ç¹ã«ãããããå®æ§çã«è¡ãããŠããå ŽåïŒãã¹ãŠãåçŽãªåœ¢åŒã§æ£ãã芳ç¹ãã瀺ãïŒã ããšãã°ããã©ã³ã¶ã¯ã·ã§ã³ã®åé¢ã¬ãã«ã§ã¿ã¹ã¯ãéçºããã®ã«çŽ10æéããããŸããã ãã©ã³ã¶ã¯ã·ã§ã³ã䞊è¡ããŠå®è¡ããããšã«ããã4ã€ã®ã¬ãã«ã®éãã瀺ãå¿
èŠãããããã«æããŸãã ããããããã«ãããŸããïŒ H2ãšMySQLã®å Žåãããã€ãã®ã¬ãã«ã®éãã¯èŠãããç°ãªãç¶æ³ã§ç«¶åç¶æ³ãåŠçããŸãïŒããŒã¿ããŒã¹ã®äžéšã¯ããŒã¿ã®å€ãã³ããŒãè¿ããä»ã¯ãã©ã³ã¶ã¯ã·ã§ã³ãã¹ã¿ã³ãã€ã¢ãŒãã«ããŸãïŒã ãããŠãDerbyDBã§ã®ã¿ããã¹ãŠã®ã¬ãã«ã®éããæ確ã«èŠãããšãã§ããŸãã æ¬ã®èè
ã¯ãã¹ãŠéåžžã«è³¢æã§ã-圌ãã¯çè«ãã³ããŒããŸãããå®éã«ããã瀺ãããã«-å®å
šãªäŸãèŠã€ããããšãã§ããªãã£ãã®ã§ãèªåã§ãããæšæž¬ããªããã°ãªããŸããã§ããã
ç§ã®èšç»ã®æ¬è³ªã¯ã
ç§ã®åªåãšããªãã®åªåã
çµã¿åãããŠãå€æ°ã®ãŠããŒã¯ãª Spring 5
ã¿ã¹ã¯ãäžç·ã«éçºããããšã§ãã ã¿ã¹ã¯ã¯ã
GitHub Webãµã€ãããã誰ã§ãç¡æã§ç»é²ãªãã§å©çšã§ããŸãã ãŸãã¯ã
ãã«èŠæ±ãå®è¡ã§ããŸãïŒãšã³ãžã³èªäœã§äœããå€æŽããå¿
èŠãããå ŽåïŒã ç§ãã¡ã¯äžç·ã«ãªã£ãŠãæ°ããåŠç¿åçãåµé ããããã倧è¡ã«ããããããšãã§ãããšä¿¡ããŠããŸãã
件åïŒ è©Šéšã®ïŒ
ïŒ | KciTasksã®ã«ãã¬ããž | ãŠãŒã¶ãŒïŒã«ãã¬ããžãã©ã³ïŒ |
---|
ã³ã³ããïŒ28ïŒ
ïŒ | 10ïŒ
| |
AOPïŒ14ïŒ
ïŒ | 10ïŒ
| |
JDBCïŒ4ïŒ
ïŒ | 50ïŒ
| |
ãã©ã³ã¶ã¯ã·ã§ã³ïŒ10ïŒ
ïŒ | 50ïŒ
| kciray8@gmail.comïŒ+ 20ïŒ
ïŒ |
MVCïŒ10ïŒ
ïŒ | 0 | |
ã»ãã¥ãªãã£ïŒ6ïŒ
ïŒ | 0 | |
RESTïŒ6ïŒ
ïŒ | 0 | |
JPA Spring DataïŒ4ïŒ
ïŒ | 0 | kciray8@gmail.comïŒ+ 50ïŒ
ïŒ |
ããŒãïŒ14ïŒ
ïŒ | 0 | |
ãã¹ãïŒ4ïŒ
ïŒ | 0 | |
ãŸããå¯ä»ïŒãµã€ãããããŒã®ãããŒïŒã®åœ¢ã§ãããžã§ã¯ãããµããŒããããªã¯ãšã¹ãã«æ³šæãåèµ·ããããšæããŸãã ç§ã¯åªåã®å ±é
¬ããããããã§ãïŒãããŠJavaéçºè
ã³ãã¥ããã£ã¯è²§ããããã¯ã»ã©é ãã§ãïŒã
æšå¥šäºé
æ¥ã®åãããã¯ã«ã€ããŠãå€ãã®ãŠããŒã¯ãªã·ã§ãã¯ãæãä»ãããšãã§ããŸãã ããšãã°ã
MVCã¹ããªã³ã°ã
䜿çšããŠ
REST APIã®éçºã«é¢ããæ瀺ãè¡ãã
RestTemplateã䜿çšããŠ
ããããããŒã¿ãåä¿¡ããã³ã³ãœãŒã«ã«è¡šç€ºã§ããŸãã 2 in 1ãããã€ãã®éãããªã³ã°ãå€æããŸããã äžè¬ã«ãããã§ã®åµé æ§ã®ç¯å²ã¯éåžžã«åºããæéãšæ¬²æã ããå¿
èŠã§ãã ãããŠããããŠããŒã¯ãªããºã«ãããè¯ãïŒ ç¬èªã®ïŒç°åžžãªïŒäœããè¿œå ããå Žåã¯ãå
ã«é²ã¿ãŸãã ãã¬ãŒãã³ã°ã®æ±çšæ§ã¯éåžžã«éèŠã§ãã å€æ°ã®ç°ãªãè§åºŠããåãç¥èã瀺ãããšãå¿
èŠã§ããããããã¯ããèšæ¶ãããŸãã äž»ãªããšã¯ãäžèšã®ãã©ã³ã¹ãä¿ã€ããšã§ãïŒååœä»€ã«ã¯ãäœããããå¿
èŠããããŸãããããã»ã©å€ãã¯ãããŸããïŒã äžç·ã«æ¬ããç¥èãè»ã®åœ¢ã«å€æããçŽ æŽãããä»äºãããããšãã§ããŸãïŒ
PSïŒèªè
ã®ãããããè©Šéšããã³/ãŸãã¯å
¬åŒã³ãŒã¹ã極ããŠéèŠãªãã®ããåããå Žåã¯ãkciray8 @ gmail.comå®ã«ã¡ãŒã«ããã ããã
åŠç¿ã·ã¹ãã ãŸãã¯ç¹°ãè¿ãã·ã¹ãã ïŒ
KciTasksã䜿çšã§ãã2ã€ã®æ¹æ³ããããŸãã æåã®æ¹æ³ã¯
ãæ¥ã®è©³çŽ°ãª
ç 究ã«äœ¿çšããããšã§ãã ç§ã®æèŠã§ã¯ãããã¯å¹æçãªã¯ãã§ãã ããªãã¯åã«æ瀺ã®åŸã«æ瀺ã«åŸãã決å®ã確èªããèªåèªèº«ãä¿®æ£ããŸãã æåã¯ããããããããèŠããŸãããããã§åé¡ãããŸããã ç¿æ¥ãã§ããã ãã®ããèŠãããªãã§ããã¹ãŠãèªåã§ããããã«ããŠãã ããã ãã¹ãŠã®ã¿ã¹ã¯ã¯ããã¿ãã¬ãªãã§å®è¡ãããããã«èšèšãããŠããŸãã ããã«æ¥ãå¿
èŠããããŸãã
ããªãã¯ã°ãŒã°ã«ã§ã¯ãªãããšã«æ³šæããŠãã ããïŒ!!!ïŒãããã¯ãæ¬ãèªãã§ã¯ãããŸãããã¿ã¹ã¯ã¯èªçµŠèªè¶³ã§ãæ瀺ãšãã®è§£æ±ºçãèªã¿ãå®éšããç¥èãåŒãåºããŸãã2çªç®ã®æ¹æ³ã¯ãç¹°ãè¿ãã« KciTasksã䜿çšããããšã§ããæ¬/ã³ãŒã¹ã®ãã¬ãŒã ãŸãã¯ããã°ã©ãã³ã°èšèªãåŠã¶ãšããããªãã¯å€ãã®åªåãããŸãããããŠç¡é§ã«ãªããªãããã«-ã¿ã¹ã¯ã§åŸããã¹ãŠã®çµéšãæè³ããŠã6ãæåŸã«beatãããéãé²ãã§ãã¹ãŠãèŠããããã«ããŸããäž¡æ¹ã®ãã¹ã¯ãã¹ããããŠããŸããïŒããŒã¿ïŒã®ã§ããã£ãŒãããã¯ããåŸ
ã¡ããŠããŸãããããŠãããè¯ããçµå±ã®ãšããããã¹ãŠã®äººã
ã¯ç°ãªã£ãŠãããèªèã¯ç°ãªã£ãŠãããã³ãã¥ããã£ã®åå¿ãèŠãå¿
èŠããããŸãããã®èšäºãã圹ã«ç«ãŠã°å¹žãã§ãã