maven + spring mvc 创建Java web项目
生活随笔
收集整理的這篇文章主要介紹了
maven + spring mvc 创建Java web项目
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
本篇文章,我們會教你通過maven和spring mvc創(chuàng)建一個Java web項目。關(guān)于maven如何創(chuàng)建普通的Java項目,上一篇文章已經(jīng)作了說明。
開發(fā)環(huán)境: 1.jdk 1.7 2.Maven 3.3.9 3.Eclipse Mars.1 4.Spring 4.2.1.RELEASE 5.Logback 1.0.13
1.通過maven模板創(chuàng)建一個Java web項目 通過命令行進入eclipse所在的workspace文件夾,輸入如下命令: mvn archetype:generate -DgroupId=org.thinkingingis -DartifactId=MavenSpringWebApp -DarchetypeArtifactId=maven-archetype-webapp
-DgroupId 表示你的組織或企業(yè)的名稱 -DartifactId 表示你本項目的名詞 -DarchetypeArtifactId 表示maven所提供的模板,maven-archetype-webapp是maven所提供眾多模板中創(chuàng)建webapp的模板。 一段時間以后,出現(xiàn)“BUILD SUCCESS”后,一個名為“MavenSpringWebApp”的Java Web的項目就構(gòu)建好了。(這一步可能會出現(xiàn)一些問題,反復幾次即可成功。)
2.項目的目錄結(jié)構(gòu) 通過maven構(gòu)建的Java web項目,其目錄結(jié)構(gòu)如下: maven自動生成的文件目錄中,包括部署描述信息文件:web.xml, pom.xml 和 index.jsp 將web.xml文件中servelt 2.3 改為2.5,如下: <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_5.dtd" ><web-app> <display-name>Archetype Created Web Application</display-name> </web-app> 3.將該項目轉(zhuǎn)換為eclipse工程 首先 cd MavenSpringWebApp 進入該項目文件夾下,輸入mvn eclipse:eclipse -Dwtpversion=2.0-Dwtversion=2.0 是告訴Maven將該工程轉(zhuǎn)換為一個eclipse web project(WAR),而不是JAR包。wtp表示 web tool platform 將項目導入到eclipse中:File-import-Existing Projects into Workspace 4.更新POM文件,添加項目所依賴的jar包 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.thinkingingis</groupId><artifactId>MavenSpringWebApp</artifactId><packaging>war</packaging><version>1.0-SNAPSHOT</version><name>MavenSpringWebApp Maven Webapp</name><url>http://maven.apache.org</url><properties><jdk.version>1.7</jdk.version><spring.version>4.2.1.RELEASE</spring.version><jstl.version>1.2</jstl.version><junit.version>4.11</junit.version><logback.version>1.0.13</logback.version><jcl-over-slf4j.version>1.7.5</jcl-over-slf4j.version></properties><dependencies><!-- Junit Test --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>${junit.version}</version></dependency><!-- Spring Core --><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>${spring.version}</version><exclusions><exclusion><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId></exclusion></exclusions></dependency><dependency><groupId>org.slf4j</groupId><artifactId>jcl-over-slf4j</artifactId><version>${jcl-over-slf4j.version}</version></dependency><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>${logback.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>${spring.version}</version></dependency><!-- jstl --><dependency><groupId>jstl</groupId><artifactId>jstl</artifactId><version>${jstl.version}</version></dependency></dependencies><build><finalName>MavenSpringWebApp</finalName><plugins><!-- Eclipse project --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-eclipse-plugin</artifactId><version>2.9</version><configuration><!-- Always download and attach dependencies source code --><downloadSources>true</downloadSources><downloadJavadocs>false</downloadJavadocs><!-- Avoid type mvn eclipse:eclipse -Dwtpversion=2.0 --><wtpversion>2.0</wtpversion></configuration></plugin><!-- Set JDK Compiler Level --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>2.3.2</version><configuration><source>${jdk.version}</source><target>${jdk.version}</target></configuration></plugin></plugins></build> </project> 5.完成務邏輯代碼 5.1 最終的目錄結(jié)構(gòu)如下: 如果沒有的文件夾, 如src/main/java需要手動創(chuàng)建。然后右擊該文件夾選擇 Build Path-Use as a source folder 5.2 BaseController.java 代碼 package org.thinkingingis.controller;import org.slf4j.LoggerFactory; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod;@Controller public class BaseController {private static int counter = 0;private static final String VIEW_INDEX = "index";private final static org.slf4j.Logger logger = LoggerFactory.getLogger(BaseController.class);@RequestMapping(value = "/", method = RequestMethod.GET)public String welcome(ModelMap model) {model.addAttribute("message", "Welcome");model.addAttribute("counter", ++counter);logger.debug("[welcome] counter : {}", counter);// Spring uses InternalResourceViewResolver and return back index.jspreturn VIEW_INDEX;}@RequestMapping(value = "/{name}", method = RequestMethod.GET)public String welcomeName(@PathVariable String name, ModelMap model) {model.addAttribute("message", "Welcome " + name);model.addAttribute("counter", ++counter);logger.debug("[welcomeName] counter : {}", counter);return VIEW_INDEX;}} 5.3 Spring配置文件 mvc-dispatcher-servlet.xml <beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"><context:component-scan base-package="org.thinkingingis.controller" /><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix"> <value>/WEB-INF/pages/</value> </property> <property name="suffix"> <value>.jsp</value> </property> </bean> </beans> 5.4 部署描述文件 web.xml <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"><display-name>Spring webapp</display-name><servlet> <servlet-name>mvc-dispatcher</servlet-name> <servlet-class> org.springframework.web.servlet.DispatcherServlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet><servlet-mapping> <servlet-name>mvc-dispatcher</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping><context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/mvc-dispatcher-servlet.xml</param-value> </context-param><listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener> </web-app> 5.5 將index.jsp文件移動至webapp/WEB-INF/pages下,index.jsp <html> <body> <html> <body> <h2>Hello World!</h2> <h1>Maven + Spring MVC Web Project Example</h1> <h2 style="color:#069">Message : ${message}</h2> <h2>Counter : ${counter}</h2> </body> </html> </body> </html> 5.6 在src/main/resources下新建一個logback.xml文件: <?xml version="1.0" encoding="UTF-8"?> <configuration><appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <layout class="ch.qos.logback.classic.PatternLayout"><Pattern> %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n </Pattern></layout> </appender><logger name="org.thinkingingis.controller" level="debug" additivity="false"> <appender-ref ref="STDOUT" /> </logger><root level="error"> <appender-ref ref="STDOUT" /> </root></configuration> 6.將項目打包,并部署 在MavenSpringWebApp文件夾下,通過命令行輸入: mvn package 一個WAR包文件會出現(xiàn)在target下
將MavenSpringWebApp.war復制到你的tomcat根目錄下的webapps文件夾下即可(我的是D:\apache-tomcat-7.0.69\webapps ) 7. 啟動tomcat 輸入 http://localhost:8080/MavenSpringWebApp/ http://localhost:8080/MavenSpringWebApp/ThinkingInGIS
看看會發(fā)生什么吧...
至此,一個通過maven創(chuàng)建的java web程序就完成啦。
開發(fā)環(huán)境: 1.jdk 1.7 2.Maven 3.3.9 3.Eclipse Mars.1 4.Spring 4.2.1.RELEASE 5.Logback 1.0.13
1.通過maven模板創(chuàng)建一個Java web項目 通過命令行進入eclipse所在的workspace文件夾,輸入如下命令: mvn archetype:generate -DgroupId=org.thinkingingis -DartifactId=MavenSpringWebApp -DarchetypeArtifactId=maven-archetype-webapp
-DgroupId 表示你的組織或企業(yè)的名稱 -DartifactId 表示你本項目的名詞 -DarchetypeArtifactId 表示maven所提供的模板,maven-archetype-webapp是maven所提供眾多模板中創(chuàng)建webapp的模板。 一段時間以后,出現(xiàn)“BUILD SUCCESS”后,一個名為“MavenSpringWebApp”的Java Web的項目就構(gòu)建好了。(這一步可能會出現(xiàn)一些問題,反復幾次即可成功。)
2.項目的目錄結(jié)構(gòu) 通過maven構(gòu)建的Java web項目,其目錄結(jié)構(gòu)如下: maven自動生成的文件目錄中,包括部署描述信息文件:web.xml, pom.xml 和 index.jsp 將web.xml文件中servelt 2.3 改為2.5,如下: <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_5.dtd" ><web-app> <display-name>Archetype Created Web Application</display-name> </web-app> 3.將該項目轉(zhuǎn)換為eclipse工程 首先 cd MavenSpringWebApp 進入該項目文件夾下,輸入mvn eclipse:eclipse -Dwtpversion=2.0-Dwtversion=2.0 是告訴Maven將該工程轉(zhuǎn)換為一個eclipse web project(WAR),而不是JAR包。wtp表示 web tool platform 將項目導入到eclipse中:File-import-Existing Projects into Workspace 4.更新POM文件,添加項目所依賴的jar包 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.thinkingingis</groupId><artifactId>MavenSpringWebApp</artifactId><packaging>war</packaging><version>1.0-SNAPSHOT</version><name>MavenSpringWebApp Maven Webapp</name><url>http://maven.apache.org</url><properties><jdk.version>1.7</jdk.version><spring.version>4.2.1.RELEASE</spring.version><jstl.version>1.2</jstl.version><junit.version>4.11</junit.version><logback.version>1.0.13</logback.version><jcl-over-slf4j.version>1.7.5</jcl-over-slf4j.version></properties><dependencies><!-- Junit Test --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>${junit.version}</version></dependency><!-- Spring Core --><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>${spring.version}</version><exclusions><exclusion><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId></exclusion></exclusions></dependency><dependency><groupId>org.slf4j</groupId><artifactId>jcl-over-slf4j</artifactId><version>${jcl-over-slf4j.version}</version></dependency><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>${logback.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>${spring.version}</version></dependency><!-- jstl --><dependency><groupId>jstl</groupId><artifactId>jstl</artifactId><version>${jstl.version}</version></dependency></dependencies><build><finalName>MavenSpringWebApp</finalName><plugins><!-- Eclipse project --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-eclipse-plugin</artifactId><version>2.9</version><configuration><!-- Always download and attach dependencies source code --><downloadSources>true</downloadSources><downloadJavadocs>false</downloadJavadocs><!-- Avoid type mvn eclipse:eclipse -Dwtpversion=2.0 --><wtpversion>2.0</wtpversion></configuration></plugin><!-- Set JDK Compiler Level --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>2.3.2</version><configuration><source>${jdk.version}</source><target>${jdk.version}</target></configuration></plugin></plugins></build> </project> 5.完成務邏輯代碼 5.1 最終的目錄結(jié)構(gòu)如下: 如果沒有的文件夾, 如src/main/java需要手動創(chuàng)建。然后右擊該文件夾選擇 Build Path-Use as a source folder 5.2 BaseController.java 代碼 package org.thinkingingis.controller;import org.slf4j.LoggerFactory; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod;@Controller public class BaseController {private static int counter = 0;private static final String VIEW_INDEX = "index";private final static org.slf4j.Logger logger = LoggerFactory.getLogger(BaseController.class);@RequestMapping(value = "/", method = RequestMethod.GET)public String welcome(ModelMap model) {model.addAttribute("message", "Welcome");model.addAttribute("counter", ++counter);logger.debug("[welcome] counter : {}", counter);// Spring uses InternalResourceViewResolver and return back index.jspreturn VIEW_INDEX;}@RequestMapping(value = "/{name}", method = RequestMethod.GET)public String welcomeName(@PathVariable String name, ModelMap model) {model.addAttribute("message", "Welcome " + name);model.addAttribute("counter", ++counter);logger.debug("[welcomeName] counter : {}", counter);return VIEW_INDEX;}} 5.3 Spring配置文件 mvc-dispatcher-servlet.xml <beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"><context:component-scan base-package="org.thinkingingis.controller" /><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix"> <value>/WEB-INF/pages/</value> </property> <property name="suffix"> <value>.jsp</value> </property> </bean> </beans> 5.4 部署描述文件 web.xml <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"><display-name>Spring webapp</display-name><servlet> <servlet-name>mvc-dispatcher</servlet-name> <servlet-class> org.springframework.web.servlet.DispatcherServlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet><servlet-mapping> <servlet-name>mvc-dispatcher</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping><context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/mvc-dispatcher-servlet.xml</param-value> </context-param><listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener> </web-app> 5.5 將index.jsp文件移動至webapp/WEB-INF/pages下,index.jsp <html> <body> <html> <body> <h2>Hello World!</h2> <h1>Maven + Spring MVC Web Project Example</h1> <h2 style="color:#069">Message : ${message}</h2> <h2>Counter : ${counter}</h2> </body> </html> </body> </html> 5.6 在src/main/resources下新建一個logback.xml文件: <?xml version="1.0" encoding="UTF-8"?> <configuration><appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <layout class="ch.qos.logback.classic.PatternLayout"><Pattern> %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n </Pattern></layout> </appender><logger name="org.thinkingingis.controller" level="debug" additivity="false"> <appender-ref ref="STDOUT" /> </logger><root level="error"> <appender-ref ref="STDOUT" /> </root></configuration> 6.將項目打包,并部署 在MavenSpringWebApp文件夾下,通過命令行輸入: mvn package 一個WAR包文件會出現(xiàn)在target下
將MavenSpringWebApp.war復制到你的tomcat根目錄下的webapps文件夾下即可(我的是D:\apache-tomcat-7.0.69\webapps ) 7. 啟動tomcat 輸入 http://localhost:8080/MavenSpringWebApp/ http://localhost:8080/MavenSpringWebApp/ThinkingInGIS
看看會發(fā)生什么吧...
至此,一個通過maven創(chuàng)建的java web程序就完成啦。
github地址:點擊打開鏈接
(如遇到問題,請留言給作者,以便共同探討gis知識。thinkingingis@qq.com)
微信公眾號:ThinkingInGIS
總結(jié)
以上是生活随笔為你收集整理的maven + spring mvc 创建Java web项目的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Maven构建java项目
- 下一篇: springmvc +bootstrap