用maven創建第一個SpringMVC
阿新 • • 發佈:2017-09-07
配置文件 img 全部 訪問 3-0 auto 分享 spa ping
首先創建一個maven項目,然後依次完成如下配置:
在pom.xml加入如下基礎配置,利用maven加載我們所需要的jar:
1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 2 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 3 <modelVersion>4.0.0</modelVersion> 4View Code<groupId>com.imooc</groupId> 5 <artifactId>springmvc</artifactId> 6 <packaging>war</packaging> 7 <version>0.0.1-SNAPSHOT</version> 8 <name>springmvc Maven Webapp</name> 9 <url>http://maven.apache.org</url> 10 11 <properties> 12<!-- 聲明各個依賴包的版本號,在下面描寫依賴的時候則不需要再聲明 --> 13 <commons-lang.version>2.6</commons-lang.version> 14 <slf4j.version>1.7.6</slf4j.version> 15 <spring.version>4.1.3.RELEASE</spring.version> 16 </properties> 17 18 <!-- 依賴管理,用來管理jar之間的依賴關系 --> 19<dependencyManagement> 20 <dependencies> 21 <dependency> 22 <groupId>org.springframework</groupId> 23 <artifactId>spring-framework-bom</artifactId> 24 <version>${spring.version}</version> 25 <type>pom</type> 26 <scope>import</scope> 27 </dependency> 28 </dependencies> 29 </dependencyManagement> 30 31 <dependencies> 32 <dependency> 33 <groupId>org.springframework</groupId> 34 <artifactId>spring-webmvc</artifactId> 35 <!-- 由於上面已經聲明版本號,這裏就不需要再聲明 --> 36 </dependency> 37 38 <dependency> 39 <groupId>commons-lang</groupId> 40 <artifactId>commons-lang</artifactId> 41 <!-- 這裏直接引用上面聲明的版本號即可 --> 42 <version>${commons-lang.version}</version> 43 </dependency> 44 45 <!-- 有關日誌的包 --> 46 <dependency> 47 <groupId>org.slf4j</groupId> 48 <artifactId>slf4j-log4j12</artifactId> 49 <version>${slf4j.version}</version> 50 <exclusions> 51 <exclusion> 52 <artifactId>slf4j-api</artifactId> 53 <groupId>org.slf4j</groupId> 54 </exclusion> 55 </exclusions> 56 </dependency> 57 58 <dependency> 59 <groupId>javax.servlet</groupId> 60 <artifactId>javax.servlet-api</artifactId> 61 <version>3.0.1</version> 62 </dependency> 63 64 </dependencies> 65 66 <build> 67 <!-- 插件 --> 68 <plugins> 69 <plugin> 70 <groupId>org.eclipse.jetty</groupId> 71 <artifactId>jetty-maven-plugin</artifactId> 72 <version>9.2.2.v20140723</version> 73 <!-- <groupId>org.apache.tomcat.maven</groupId> 74 <artifactId>tomcat7-maven-plugin</artifactId> 75 <version>2.2</version> 76 <configuration> 77 <url>http://localhost:8080/webapp/index.jsp</url> 78 </configuration> --> 79 </plugin> 80 </plugins> 81 </build> 82 </project>
在web.xml加入如下基礎配置:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 5 http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 6 7 <display-name>Spring MVC Study</display-name> 8 <!-- Spring應用上下文,理解層次化的ApplicationContext --> 9 <context-param> 10 <param-name>contextConfigLocation</param-name> 11 <!-- Spring自己的配置文件 --> 12 <param-value>/WEB-INF/configs/spring/applicationContext*.xml</param-value> 13 </context-param> 14 15 <listener> 16 <listener-class> 17 org.springframework.web.context.ContextLoaderListener 18 </listener-class> 19 </listener> 20 21 <!-- 利用下面的servlet和servlet-mapping標簽將前端控制器配置到web中, --> 22 <servlet> 23 <servlet-name>mvc-dispatcher</servlet-name> 24 <servlet-class> org.springframework.web.servlet.DispatcherServlet</servlet-class> 25 <!-- DispatcherServlet對應的上下文配置, 默認為/WEB-INF/$servlet-name$-servlet.xml 26 如果沒有init-param,則會默認加載上述的默認配置文件--> 27 <init-param> 28 <param-name>contextConfigLocation</param-name> 29 <!-- 在/WEB-INF/相應目錄下創建如下的xml文件 --> 30 <param-value>/WEB-INF/configs/spring/mvc-dispatcher-servlet.xml</param-value> 31 </init-param> 32 <load-on-startup>1</load-on-startup> 33 </servlet> 34 <servlet-mapping> 35 <!-- 這裏的servlet-name與上面的servlet標簽裏的servlet-name保持一致 --> 36 <servlet-name>mvc-dispatcher</servlet-name> 37 <!-- mvc-dispatcher攔截所有的請求--> 38 <!-- 這裏url-pattern指定了不同url來源的依據 --> 39 <url-pattern>/</url-pattern> 40 </servlet-mapping> 41 </web-app>View Code
創建mvc-dispatcher-servlet.xml,加入如下基礎配置:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" 4 xmlns:mvc="http://www.springframework.org/schema/mvc" 5 xsi:schemaLocation=" 6 http://www.springframework.org/schema/beans 7 http://www.springframework.org/schema/beans/spring-beans.xsd 8 http://www.springframework.org/schema/context 9 http://www.springframework.org/schema/context/spring-context.xsd 10 http://www.springframework.org/schema/mvc 11 http://www.springframework.org/schema/mvc/spring-mvc.xsd"> 12 13 <!-- 激活@Required @Autowired @PostConstruct @PreDestroy @Resource等註解, 14 使得在類中可以利用註解來實例化相應對象 --> 15 <context:annotation-config /> 16 17 <!-- DispatcherServlet上下文,只搜索@Controller標註的類,不搜索其他標註的類 --> 18 <context:component-scan base-package="com.imooc.mvcdemo"> 19 <context:include-filter type="annotation" 20 expression="org.springframework.stereotype.Controller" /> 21 </context:component-scan> 22 23 <!-- 讓DispatcherServlet啟用基於annotation的HandlerMapping --> 24 <mvc:annotation-driven /> 25 26 27 <!-- 配置ViewResolver,告訴servlet將由哪個ViewResolver獲取view,這裏使用JstlView --> 28 <bean 29 class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 30 <property name="viewClass" 31 value="org.springframework.web.servlet.view.JstlView" /> 32 <!-- 配置其前綴prefix,表示jsp文件在/WEB-INF/jsps/目錄下,配置其後綴suffix,表示其文件類型是.jsp --> 33 <property name="prefix" value="/WEB-INF/jsps/" /> 34 <property name="suffix" value=".jsp" /> 35 </bean> 36 37 38 </beans>View Code
創建applicationContext.xml,加入如下基礎配置:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" 4 xmlns:mvc="http://www.springframework.org/schema/mvc" 5 xsi:schemaLocation=" 6 http://www.springframework.org/schema/beans 7 http://www.springframework.org/schema/beans/spring-beans.xsd 8 http://www.springframework.org/schema/context 9 http://www.springframework.org/schema/context/spring-context.xsd 10 http://www.springframework.org/schema/mvc 11 http://www.springframework.org/schema/mvc/spring-mvc.xsd"> 12 13 <context:annotation-config /> 14 15 <!-- 這裏不需要管理Controller --> 16 <context:component-scan base-package="com.imooc.mvcdemo"> 17 <context:exclude-filter type="annotation" 18 expression="org.springframework.stereotype.Controller" /> 19 </context:component-scan> 20 </beans>View Code
至此,配置文件加載完畢,加入前端控制器:
1 package com.imooc.mvcdemo.controller; 2 3 import org.springframework.stereotype.Controller; 4 import org.springframework.web.bind.annotation.RequestMapping; 5 6 @Controller 7 @RequestMapping("/hello") 8 public class HelloMvcController { 9 10 @RequestMapping("/mvc") 11 //這裏經過@RequestMapping配置之後可以由瀏覽器訪問localhost:8080/hello/mvc 12 public String helloMvc() { 13 //返回到home.jsp 14 return "home"; 15 } 16 }View Code
全部做完之後,運行jetty:run,在瀏覽器中輸入相應url即可得到結果。
圖解:
webApplicationContext可以有多個,這也就是我們的context, listener所加載的一個上下文信息,它為我們提供了我們所有應用公共所使用的一些組件和服務,也就是service和dao層等,這些服務應當是被整個應用所共享的,它不應該被局限在某一個DispatcherServlet上下文中。
與特定DispatcherServlet相關的上下文,也可以有多個DispatcherServlet。這些不同的DispatcherServlet可以用來分發不同的請求。
用maven創建第一個SpringMVC