å°å ¥
ãåç¥ã®ãšãããJava ã®æåã¯ãŸãã«ãããã¯ãŒã¯ãžã®æ¥ç¶ãç®æããœãããŠã§ã¢ã®é²åã®ãããã§ããããã§ãéåžžã®ã³ã³ãœãŒã«ã¢ããªã±ãŒã·ã§ã³ãHello WorldããããŒã¹ã«ããŠãã³ã³ãœãŒã«ã¢ããªã±ãŒã·ã§ã³ãããããã¯ãŒã¯ã¢ããªã±ãŒã·ã§ã³ã«ãªãããã«ã¯äœãå¿ èŠããç解ããŠãããŸãããããã£ãŠãæåã« Java ãããžã§ã¯ããäœæããå¿ èŠããããŸããããã°ã©ããŒã¯æ ãè ã§ããå å²æ代ããã³ã¢ã¹ãç©ã£ãŠãã人ãããã°ã座ã£ãŠããŸããŸãª Java ã©ã€ãã©ãªããã£ã¬ã¯ããªæ§é ã«æ··ä¹±ããªãããã«åªããŠãã人ãããŸãããéçºè ãã¢ããªã±ãŒã·ã§ã³ã®äœæããã»ã¹ãå¶åŸ¡ããŠããããŒãžã§ã³ 2 ã®ããããã®ã©ã€ãã©ãªã欲ããããšç°¡åã«æžããããã«ãéçºè ã¯ç¹å¥ãªããŒã«ãã€ãŸãã·ã¹ãã ãæ§ç¯ããããšãèãåºããŸãããæãæåãªãã®ã¯MavenãšGradleã® 2 ã€ã§ãããã®èšäºã§ã¯ Gradle ã䜿çšããŸãã以åã¯ãã£ã¬ã¯ããªæ§é ãèªåã§äœæããå¿ èŠããããŸããããçŸåšã§ã¯Gradle Init Plugin ã䜿çšããŠã 1 ã€ã®ã³ãã³ãã§ãã£ã¬ã¯ããªæ§é ãšåºæ¬ Main ã¯ã©ã¹ãæ〠Java ãããžã§ã¯ããäœæã§ããŸããgradle init --type java-application
ãã®ã³ãã³ãã¯ã次ã®ã³ãã³ãã§åæå (init) ãå®è¡ããŸããã³ã³ãœãŒã« Hello World ãåãã Java ã¢ããªã±ãŒã·ã§ã³ (java-application ) ã䜿çšããŸããå®äºãããšããã¡ã€ã«build.gradleããã£ã¬ã¯ããªã«è¡šç€ºãããŸããããã¯ãã«ã ã¹ã¯ãªããã§ããã€ãŸããã¢ããªã±ãŒã·ã§ã³ãäœæããããã®ç¹å®ã®ã¹ã¯ãªãããšããã®ããã«ã©ã®ãããªã¢ã¯ã·ã§ã³ãå®è¡ããå¿
èŠãããããèšè¿°ãããã®ã§ãããããéããŠæ¬¡ã®è¡ãè¿œå ããŠã¿ãŸããããjar.baseName = 'webproject'
Gradle ã䜿çšãããšããããžã§ã¯ãã«å¯ŸããŠããŸããŸãªã¢ã¯ã·ã§ã³ãå®è¡ã§ããŸãããããã®ã¢ã¯ã·ã§ã³ã¯ã¿ã¹ã¯ãšåŒã°ããŸããã³ãã³ã (ã¿ã¹ã¯) ãå®è¡ãããšã/build/libsgradle build
ãã£ã¬ã¯ããªã«JAR ãã¡ã€ã«ãäœæãããŸãããããŠããæ³åã®ãšããããã®ååã¯webproject.jarã«ãªããŸãããããã ãå®è¡ãããšããšã©ãŒãçºçããŸããããã¯ãJava ã¢ããªã±ãŒã·ã§ã³ã®å Žåããããã§ã¹ããæ·»ä»ããå¿
èŠãããããã§ããããã¯ãã¢ããªã±ãŒã·ã§ã³ã®æäœæ¹æ³ãã¢ããªã±ãŒã·ã§ã³ã®èªèæ¹æ³ã«ã€ããŠã®èª¬æã§ãã次ã«ãJava ã¢ããªã±ãŒã·ã§ã³ãå®è¡ãã JVM ã¯ãã©ã®ã¯ã©ã¹ãããã°ã©ã ãžã®ãšã³ã㪠ãã€ã³ãã§ããããããã³ãã®ä»ã®æ
å ± (ã¯ã©ã¹ãã¹ãªã©) ãèªèããŸãããã«ã ã¹ã¯ãªããã®å
容ã詳ããèŠãŠã¿ããšããã©ã°ã€ã³ãæ¥ç¶ãããŠããããšãããããŸããäŸ: Gradle Java Plugin ããŒãž ã«ç§»åãããšããããã§ã¹ããæ§æã§ããããšãããããŸãã java -jar ./build/libs/webproject.jar
no main manifest attribute
apply plugin: 'java'
jar {
manifest {
attributes 'Main-Class': 'App'
}
}
ããã°ã©ã ãžã®ãšã³ã㪠ãã€ã³ãã§ããã¡ã€ã³ ã¯ã©ã¹ã¯ãGradle Init Plugin ã«ãã£ãŠçæãããŸããããããŠããã㯠mainClassName ãã©ã¡ãŒã¿ã§ãæå®ãããŸããããããããã¯ç§ãã¡ã«ã¯åããªãã£ãããã§ã... ãã®èšå®ã¯ãå¥ã®ãã©ã°ã€ã³ã§ããGradle Application Pluginãåç
§ããŸããããã§ãç»é¢ã« Hello World ã衚瀺ãã Java ã¢ããªã±ãŒã·ã§ã³ãã§ããŸããããã® Java ã¢ããªã±ãŒã·ã§ã³ã¯ JAR (Java ARchive) ã«ããã±ãŒãžåãããŠããŸããã·ã³ãã«ã§ã³ã³ãœãŒã«ããŒã¹ã§ãããææ°ã®ãã®ã§ã¯ãããŸããããããWebã¢ããªã±ãŒã·ã§ã³ã«å€ããã«ã¯ã©ãããã°ããã§ãããã?
ãµãŒãã¬ããAPI
Java ããããã¯ãŒã¯ãšé£æºã§ããããã«ããããã«ããµãŒãã¬ãã APIãšåŒã°ããä»æ§ãå€ãã«ç»å ŽããŸããããã®ä»æ§ã§ã¯ãã¯ã©ã€ã¢ã³ã (ãã©ãŠã¶ãŒãªã©) ããã¡ãã»ãŒãžãåä¿¡ããå¿ç (ããŒãžã®ããã¹ããªã©) ãéä¿¡ãããã¯ã©ã€ã¢ã³ããšãµãŒããŒã®å¯Ÿè©±ã«ã€ããŠèª¬æããŸããåœç¶ã®ããšãªããããã以æ¥å€ãã®ããšãå€ãããŸããããéèŠãªã®ã¯ãJava ã¢ããªã±ãŒã·ã§ã³ã Web ã¢ããªã±ãŒã·ã§ã³ã«ããããã«ããµãŒãã¬ãã API ã䜿çšããããšããããšã§ããæ ¹æ ã®ãªãæ¶æž¬ãé¿ããããã«ããŸãã«ãã®ä»æ§ã JSR-000340 JavaTM Servlet 3.1ãåãäžããŸãããããŸãæ°ã«ãªãã®ã¯ã第1ç« ïŒæŠèŠãã§ããç§ãã¡ãç解ããå¿ èŠãããåºæ¬çãªæŠå¿µã«ã€ããŠèª¬æããŸãããŸãããµãŒãã¬ãããšã¯äœã§ãããã? ã 1.1 ãµãŒãã¬ãããšã¯?ãã®ç« ã§ã¯ããµãŒãã¬ããã¯ã³ã³ããã«ãã£ãŠç®¡çãããåçã³ã³ãã³ããçæãã Java ã³ã³ããŒãã³ãã§ãããšè¿°ã¹ãŠããŸããä»ã® Java ã³ã³ããŒãã³ããšåæ§ããµãŒãã¬ããã¯ãã€ãã³ãŒãã«ã³ã³ãã€ã«ããã Java ã¯ã©ã¹ã§ãããJava ãã¯ãããžã䜿çšã㊠Web ãµãŒããŒã«ããŒãã§ããŸãããµãŒãã¬ããã¯ããµãŒãã¬ãã ã³ã³ããã«ãã£ãŠå®è£ ãããèŠæ±/å¿çãã©ãã€ã ã®ãã¬ãŒã ã¯ãŒã¯å 㧠Web ã¯ã©ã€ã¢ã³ã (ãã©ãŠã¶ãªã©) ãšå¯Ÿè©±ããããšãéèŠã§ãããµãŒãã¬ããã¯ããçš®ã®ãµãŒãã¬ãã ã³ã³ããå ã«ååšããããšãããããŸãããããã¯äœã§ããïŒã 1.2 ãµãŒãã¬ãã ã³ã³ãããšã¯? ãã®ç« ã§ã¯ããµãŒãã¬ãã ã³ã³ããã¯ããªã¯ãšã¹ãã®éä¿¡ãå¿çã®éä¿¡ã«äœ¿çšããããããã¯ãŒã¯ ãµãŒãã¹ãæäŸãã Web ãµãŒããŒãŸãã¯ã¢ããªã±ãŒã·ã§ã³ ãµãŒããŒã®äžéšã§ãããšèª¬æãããŠããŸãããã®ãµãŒãã¬ãã ã³ã³ããèªäœããµãŒãã¬ããã®ã©ã€ã ãµã€ã¯ã«ã管çããŸãããã¹ãŠã®ãµãŒãã¬ãã ã³ã³ããã¯å°ãªããšã HTTP ãããã³ã«ããµããŒãããå¿ èŠããããŸãããä»ã®ãããã³ã«ããµããŒãããå ŽåããããŸããããšãã°ãHTTPSããµãŒãã¬ãã ã³ã³ãããããµãŒãã¬ãããå®è¡ãããç°å¢ã«ã»ãã¥ãªãã£é¢é£ã®å¶éã課ãããšãã§ããããšãéèŠã§ããã 10.6 Web ã¢ããªã±ãŒã·ã§ã³ ã¢ãŒã«ã€ã ãã¡ã€ã«ãã«åŸã£ãŠãWeb ã¢ããªã±ãŒã·ã§ã³ã¯ WAR (Web ARchive) ãã¡ã€ã«ã«ããã±ãŒãžåããå¿ èŠãããããšãéèŠã§ããã€ãŸããå¥ã®ãã®ã®ããã« jar ãšã¢ããªã±ãŒã·ã§ã³ã®ãã©ã°ã€ã³ãåé€ããå¿ èŠããããŸãããããGradle WAR ãã©ã°ã€ã³ã§ãããããŠãjar.baseNameã®ä»£ããã«war.baseNameãæå®ããŸããjar ãã©ã°ã€ã³ã䜿çšããªããªã£ãããããããã§ã¹ãèšå®ãåé€ããŸãããJAR ãèµ·åãããšãããããã§ã¹ããéã㊠Java ä»®æ³ãã·ã³ (JVM) ã«ã¢ããªã±ãŒã·ã§ã³ã®æäœæ¹æ³ãæ瀺ããå¿ èŠããããŸãããJVM ãå®è¡ããŠããããã§ããWeb ã¢ããªã±ãŒã·ã§ã³ã¯ãæããã«ããã皮㮠Web ãµãŒããŒã«ãã£ãŠå®è¡ãããŸãã圌ã¯ãäœããã®æ¹æ³ã§ Web ã¢ããªã±ãŒã·ã§ã³ã®æäœæ¹æ³ãäŒããå¿ èŠãããããšãããããŸããããããŠããã®ãšããã§ããããšãããããŸãããWeb ã¢ããªã±ãŒã·ã§ã³ã«ã¯ç¬èªã®ç¹å¥ãªãããã§ã¹ãããããŸããããã¯ãããã€ã¡ã³ãèšè¿°åãšåŒã°ããŸããã»ã¯ã·ã§ã³å šäœãã14. ãããã€ã¡ã³ãèšè¿°åãã«åœãŠãããŠããŸããéèŠãªã»ã¯ã·ã§ã³ããããŸã:ã第 10 ç« :ãµãŒãã¬ãã API ã®èŠ³ç¹ãã Web ã¢ããªã±ãŒã·ã§ã³ãšã¯äœãã«ã€ããŠèª¬æããŸããããšãã°ãã10.5 ãã£ã¬ã¯ããªæ§é ãã®ç« ã§ã¯ããããã€ã¡ã³ãèšè¿°åãã©ãã«çœ®ãã¹ããã瀺ãããŠããŸãã/WEB-INF/web.xml
WEB-INF ãã©ãã«é
眮ããã? Gradle WAR ãã©ã°ã€ã³ã§è¿°ã¹ãããã«ãæ°ããã¬ã€ã¢ãŠããè¿œå ããŸã: src/main/webapp
. ãããã£ãŠããã®ãããªãã£ã¬ã¯ããªãäœæããŸããã, äžã« WEB-INF ãã£ã¬ã¯ããªãäœæãããã®äžã« web.xml ãã¡ã€ã«ãäœæããŸã. ãã£ã¬ã¯ããªãéèŠã§ã.ãã㯠META-INF ã§ã¯ãªã WEB-INF ãšåŒã°ããŸã! ã14.5.1 åºæ¬çãªäŸãã® XML äŸããã³ããŒããŠã¿ãŸããã:
specification is available at http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd
ãã€ãŸããã¹ããŒããžã®ãªã³ã¯ããã¹ãŠã®å Žæã§æå®ããã xsd ã«çœ®ãæããå¿
èŠããããããã 3.1 ã«å€æŽããããšãå¿ããã«version="2.5"
ããã¹ãŠã®å Žæã§åå空éãå€æŽããå¿
èŠããããŸã ( xmlns ããã³ xsi:schemaLocation)ããããã¯ãã©ã®åå空éå
ã§äœæ¥ãããã瀺ããŸã (éåžžã«ç°¡åã«èšããšãã©ã®èŠçŽ åã䜿çšã§ããã)ãã¹ããŒã ãã¡ã€ã«ãéããšãtargetNamespace ã«ã¯ãæå®ããå¿
èŠãããã®ãšåãåå空éãå«ãŸããŸãã
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class App extends HttpServlet {
public String getGreeting() {
return "Hello world.";
}
public void doGet(HttpServletRequest request, HttpServletResponse response) {
response.setContentType("text/html");
try {
response.getWriter().println(getGreeting());
} catch (IOException e) {
throw new IllegalStateException(e);
}
}
}
ããããç§ãã¡ã®ãããžã§ã¯ãã¯ãŸã æºåãã§ããŠããŸãããçŸåšã¯ãµãŒãã¬ãã API ããŒãžã§ã³ 3.1 ã«äŸåããŠããããã§ããããã¯ããã«ã ã¹ã¯ãªããã§ãµãŒãã¬ãã API ãžã®äŸåé¢ä¿ã瀺ãå¿
èŠãããããšãæå³ããŸããJVM ã¯ãã³ãŒãã«èšè¿°ãããå
容ãæ£ããããšãšããã®ã³ãŒãã®äœ¿çšæ¹æ³ãèªèããå¿
èŠããããŸããèŠããŠãããšãããä»æ§ã¯æ¬è³ªçã«ããã¹ãŠãã©ã®ããã«æ©èœãããã説æããåãªãã€ã³ã¿ãŒãã§ã€ã¹ã§ãããããŠå®è£
㯠Web ãµãŒããŒåŽã«ãããŸãããããã£ãŠããµãŒãã¬ãã API ããªããã°ãMaven Central ã§å¿
èŠãªã©ã€ãã©ãªãèŠã€ããŸã: javax.servlet-apiããããŠãäŸåé¢ä¿ãããã¯ã«ãšã³ããªãè¿œå ããŸããMaven ãªããžããªã§ã¯ãã芧ã®ãšãããprovided ãšè¡šç€ºãããŸããäŸåé¢ä¿ã䜿çšããåã«ãã¹ã³ãŒããæå®ããå¿
èŠããããŸããGradle ã«ã¯ãprovidedããšããååã®ã¹ã³ãŒãã¯ãããŸãããããã³ã³ãã€ã«ã®ã¿ãã¹ã³ãŒãããããŸãããããã£ãŠã次ã®ããšã瀺ããŸãããprovidedCompile 'javax.servlet:javax.servlet-api:3.1.0'
ããŒãããã¹ãŠãé 調ã®ããã§ãã?ãGradle Build ã¯ãããžã§ã¯ãã WAR ãã¡ã€ã«ã«ãã«ãããŸãããããŠã次ã«äœããã¹ãã§ãããã? ãŸããWeb ãµãŒããŒãå¿
èŠã§ããGoogleã§ã¯ã WebãµãŒããŒJavaãªã¹ãããšæžããšWebãµãŒããŒã®ãªã¹ãã衚瀺ãããŸãããã®ãªã¹ããããããšãã°TomCatãéžæããŠã¿ãŸããããApache Tomcat Web ãµã€ãã«ç§»åããææ°ããŒãžã§ã³ (çŸåšããŒãžã§ã³ 9) ã zip ã¢ãŒã«ã€ããšããŠããŠã³ããŒãããŸã (Windows ã®å Žå)ããããäœããã®ãã£ã¬ã¯ããªã«è§£åããŸãããããWeb ãµãŒããŒããããŸããWeb ãµãŒã㌠ãã£ã¬ã¯ããªã®binãµããã£ã¬ã¯ããªãããã³ãã³ã ã©ã€ã³ããcatalinaãå®è¡ããå©çšå¯èœãªãªãã·ã§ã³ã確èªããŸãããããïŒcatalina start
ãå Web ãµãŒããŒã«ã¯ãWeb ãµãŒããŒãç£èŠãããã£ã¬ã¯ããªããããŸããããã« Web ã¢ããªã±ãŒã·ã§ã³ ãã¡ã€ã«ã衚瀺ããããšãWeb ãµãŒããŒã¯ãã®ãã¡ã€ã«ã®ã€ã³ã¹ããŒã«ãéå§ããŸãããã®ã€ã³ã¹ããŒã«ã¯ããããã€ã¡ã³ããŸãã¯ãããã€ã¡ã³ããšåŒã°ããŸããã¯ãã¯ããã ããããããã€ã¡ã³ãèšè¿°åãã§ããã€ãŸããã¢ããªã±ãŒã·ã§ã³ãé©åã«ãããã€ããæ¹æ³ã§ããTomcat ã§ã¯ããã®ãã£ã¬ã¯ããªã¯webappsã§ããããã«gradle buildã䜿ã£ãŠäœã£ãwarãã³ããŒããŠã¿ãŸãããããã®åŸããã°ã«ã¯æ¬¡ã®ãããªå
容ã衚瀺ãããŸãã Deployment of web application archive [tomcat\webapps\webproject.war] has finished in [вÑеЌÑ] ms
ããã«ããããããããããã«ãtomcat ãã£ã¬ã¯ããªã§ãã¡ã€ã«ãç·šéã\conf\tomcat-users.xml
ã次ã®è¡ãè¿œå ããŸãã
http://127.0.0.1:8080/manager
ãã¹ãŠã®ã¢ããªã±ãŒã·ã§ã³ã®ãã¹ã衚瀺ãããŸããç§ãã¡ã® Web ãããžã§ã¯ãã«ã¯ããããããã¹ /webproject ãäžããããŠããŸãããã®éã¯äœã§ããããïŒã 10.1 Web ãµãŒããŒå
ã® Web ã¢ããªã±ãŒã·ã§ã³ãã®ç« ã®ä»æ§ã§ã¯ãWeb ã¢ããªã±ãŒã·ã§ã³ãã¢ããªã±ãŒã·ã§ã³å
ã®ãã¹ (ãã®å Žå㯠/webproject) ã«é¢é£ä»ãããããšè¿°ã¹ãŠããŸãããã®ãã¹ãçµç±ãããã¹ãŠã®ãªã¯ãšã¹ãã¯ãåã ServletContext ã«é¢é£ä»ããããŸãããã®ãã¹ã¯contextRootãšãåŒã°ããŸãããããŠãã 10.2 ServletContextãšã®é¢ä¿ãã«ããã°ããµãŒãã¬ããã³ã³ããã¯Webã¢ããªã±ãŒã·ã§ã³ãšServletContextã1察1ã§é¢é£ä»ããŸããã€ãŸããå Web ã¢ããªã±ãŒã·ã§ã³ã«ã¯ç¬èªã® ServletContext ããããŸããServletContextãšã¯äœã§ãã? ä»æ§ã«èšèŒãããŠããããã«ãServletContext ã¯ããµãŒãã¬ãããå®è¡ãããŠãããã¢ããªã±ãŒã·ã§ã³ã®ãã¥ãŒãããµãŒãã¬ããã«æäŸãããªããžã§ã¯ãã§ãããµãŒãã¬ãã ã³ã³ããã¹ãã«ã€ããŠã¯ããµãŒãã¬ãã API ä»æ§ã®ç¬¬ 4 ç« ã§è©³ãã説æãããŠããŸããé©ãã¹ãããšã«ãããŒãžã§ã³ 3.1 ã®ãµãŒãã¬ãã API ã§ã¯ web.xml ãååšããå¿
èŠããªããªããŸãããããšãã°ãã¢ãããŒã·ã§ã³ã䜿çšããŠãµãŒãã¬ãããå®çŸ©ã§ããŸãã
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/app2")
public class App2 extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
response.setContentType("text/html");
response.getWriter().println("app2");
}
}
ã Java EE ã€ã³ã¿ãã¥ãŒ - JEE ãµãŒãã¬ãã API (質åãšåç) ã ãšãããããã¯ã«ã€ããŠããå§ãããŸãããããã£ãŠããµãŒãã¬ããããããWeb ã¯ã©ã€ã¢ã³ãã«ã©ã®ãããªå¿çãè¿ãããæ
åœããŸãããŠãŒã¶ãŒããã®ãªã¯ãšã¹ããåãåããã¢ã¯ã»ã¹ããããã¹ãšãµãŒãã¬ãããžã®ãã¹ãç
§åããäžèŽãããã®ãèŠã€ãã£ãå Žåã¯ãµãŒãã¬ãããå®è¡ãã ServletContainer ããããŸãã倧äžå€«ããã®äžçã®çµµã®äžã§æ¥ã¯ã©ã®äœçœ®ãå ããŠããŸãã?
Spring Web MVC
ãã°ããããWeb ã¢ããªã±ãŒã·ã§ã³ãã§ããŸããã次㫠Spring ãæ¥ç¶ããå¿ èŠããããŸããã©ãããã°ãããã§ããã§ããããïŒãŸããSpring ããããžã§ã¯ãã«é©åã«æ¥ç¶ããæ¹æ³ãç解ããå¿ èŠããããŸãã以åã¯Spring ãã©ãããã©ãŒã ãããžã§ã¯ãã®ããã¥ã¡ã³ãã«åŸã£ãŠãããå®è¡ã§ããããšãå€æããŸããããçŸåšã¯ããã©ãããã©ãŒã 㯠2019 幎 4 æ 9 æ¥ã«ãµããŒãæéãçµäºããŸãããã€ãŸããããã¯ãå§ãã§ããŸãããããã䜿ã£ãŠãã ããããªããªã ããã«ãµããŒããããªããªãäºå®ã§ããå¯äžã®è§£æ±ºçã¯ãããã©ãããã©ãŒã ã®ãŠãŒã¶ãŒã¯ Spring Boot ã®äŸåé¢ä¿ç®¡çã®äœ¿çšãéå§ããããšããå§ãããŸããã§ãããããã£ãŠã Spring Boot ã®ããã¥ã¡ã³ãã«é²ã¿ãŸããããSpring Boot èªäœã¯äœ¿çšãããSpring Boot ã®äŸåé¢ä¿ç®¡çã®ã¿ã䜿çšããããšãæ確ã«ããŠãããŸããã€ãŸããSpring Boot ãããžã§ã¯ãã¯ã(Spring MVC ãå«ã) ã©ã€ãã©ãªã®ã©ã®ããŒãžã§ã³ã䜿çšãããã«é¢ããæ å ±ãæäŸã§ããŸãããã㧠3.2 ãèŠã€ããŸããSpring Boot ã®äŸåé¢ä¿ç®¡çãåç¬ã§äœ¿çšãããããã¥ã¡ã³ãã«ãããšããã«ã ã¹ã¯ãªããã«æ¬¡ã®ã³ãŒããè¿œå ããŸããplugins {
id 'org.springframework.boot' version '2.0.4.RELEASE' apply false
}
apply plugin: 'io.spring.dependency-management'
ãããŠ
dependencyManagement {
imports {
mavenBom org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES
}
}
ã芧ã®ãšãããç§ãã¡ã¯ ã瀺ããŸããapply false
ãSpring Boot èªäœã¯äœ¿çšããŸããããããããäŸåé¢ä¿ç®¡çã䜿çšããŸãããã®äŸåé¢ä¿ç®¡çã¯ãBOM (ãéšåè¡šã) ãšãåŒã°ããŸããããã§ãSpring Web MVC ãããžã§ã¯ãèªäœãæ¥ç¶ããæºåãæŽããŸãããSpring Web MVC ã¯Spring Frameworkãããžã§ã¯ãã®äžéšã§ãããã Web Servlet ãã»ã¯ã·ã§ã³ã«èå³ããããŸããäŸåé¢ä¿ããã«ã ã¹ã¯ãªããã«è¿œå ããŸãããcompile 'org.springframework:spring-webmvc'
ãã芧ã®ãšãããã¹ã³ãŒãã®ã³ã³ãã€ã«ãèšå®ããŸããWeb ãµãŒããŒã¯ Spring ãæäŸããŸãããç§ãã¡ã®ãããžã§ã¯ãã¯ããã®å
éšã« Spring ã©ã€ãã©ãªã匷å¶çã«å«ããå¿
èŠããããŸãã次ã«ãã»ã¯ã·ã§ã³ã 1.2. DispatcherServlet ããèªãããšãéèŠã§ãããã®ã»ã¯ã·ã§ã³ã§ã¯ãSpring MVCã¯ãããã³ã ã³ã³ãããŒã©ãŒããã¿ãŒã³ãäžå¿ã«æ§ç¯ãããŠãããæ§æãšä»ã®ã³ã³ããŒãã³ããžã®å§ä»»ãæäŸããããçš®ã®äžå€®ãµãŒãã¬ããããããšè¿°ã¹ãããŠããŸãã ããã£ã¹ãããã£ãŒã¯ãã£ã¹ãããã£ãŒãšèš³ããŸãããããã£ãŠããŸã web.xml ã§æ¬¡ã®ããã«å®£èšããŸãã
applicationContext.xml
åã«æå®ãããã¡ã€ã«ãäœæããããšãå¿ããªãã§ãã ãããSpring ããã¥ã¡ã³ãã 1.10.3. ã¯ã©ã¹ã®èªåæ€åºãš Bean å®çŸ©ã®ç»é²ãããäŸãèŠãŠã¿ãŸãããã
-
Web æ§æ (Java ã¹ã¿ã€ã«æ§æã®äŸ):
@Configuration @EnableWebMvc public class WebConfig implements WebMvcConfigurer { @Override public void configureViewResolvers(ViewResolverRegistry registry) { registry.jsp("/WEB-INF/pages/", ".jsp"); } @Override public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) { configurer.enable(); } }
ãã®äŸã¯ãSpring Framework ã®ããã¥ã¡ã³ãã1.11. MVC Configãã§èª¬æãããŠããŸãã
ããã§ã¯ãJSP ããŒãžãã©ãã«ããããå€æããã®ã«åœ¹ç«ã€ ViewResolver ãç»é²ããŸãã2 çªç®ã®æ¹æ³ã§ã¯ããDefault servletãã確å®ã«æå¹ã«ãªããŸãã
詳现ã«ã€ããŠã¯ããdefault-servlet-handler ã®å¿ èŠæ§ãšäœ¿çšæ¹æ³ããåç §ããŠãã ããã
-
ç¹å®ã® JSP ãžã®ãªã¯ãšã¹ãã®ãããã³ã°ãèšè¿°ããããã® HelloController ã³ã³ãããŒã©ãŒ
@Controller public class HelloController { @GetMapping("/hello") public String handle(Model model) { return "hello"; } }
ããã§ã¯ãããã¥ã¡ã³ãã®ã1.4. ã¢ãããŒã·ã§ã³ä»ãã³ã³ãããŒã©ãŒãã®ç« ã§èª¬æãããŠãã @Controller ã¢ãããŒã·ã§ã³ã䜿çšããŸããã
/webproject/hello
(/webproject ãã³ã³ããã¹ã ã«ãŒã) ãéä¿¡ãããšãDispatcherServlet ãæåã«åŠçãããŸããã¡ã€ã³ã®ãã£ã¹ãããã£ãšããŠã /* çŸåšã®ãªã¯ãšã¹ããšäžèŽãããšå€æããŸããããã¯ãDispatcherServlet ãäœããã®åŠçãè¡ãå¿
èŠãããããšãæå³ããŸãã次ã«ãèŠã€ãã£ããã¹ãŠã®ãããã³ã°ã調ã¹ãŸãã/hello ã«ãããããããã³ãã« ã¡ãœãããæ〠HelloController ãããããšã確èªããããããå®è¡ãããŸãããã®ã¡ãœããã¯ãhelloããšããããã¹ããè¿ããŸãããã®ããã¹ã㯠ViewResolver ã«ãã£ãŠåä¿¡ãããã¯ã©ã€ã¢ã³ãã«è¡šç€ºããå¿
èŠããã JSP ãã¡ã€ã«ãã©ãã§æ¢ããããµãŒããŒã«æ瀺ããŸãããããã£ãŠãã¯ã©ã€ã¢ã³ãã¯æçµçã«ãã®éåžžã«å€§åãªããŒãžãåãåãããšã«ãªããŸãã
GO TO FULL VERSION