因?yàn)橛?Spring 的依賴注入祭钉,所以實(shí)現(xiàn) SpringMVC 的 Demo 非常簡(jiǎn)單。
一: 構(gòu)建
這里使用 Maven 構(gòu)建翔悠,以下是 pom 文件:
<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>com.free.springmvc</groupId>
<artifactId>lesson1</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>lesson1 Maven Webapp</name>
<url>http://maven.apache.org</url>
<properties>
<!-- spring版本號(hào) -->
<spring.version>4.3.9.RELEASE</spring.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- spring 核心包 -->
<!-- springframe start -->
<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>
<!-- springframe end -->
</dependencies>
<build>
<finalName>lesson1</finalName>
</build>
</project>
二: 配置 SpringMVC
1. web.xml 的配置
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<servlet>
<servlet-name>springMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>springMVC</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
以上是 web.xml 的最基本配置灾而,只實(shí)現(xiàn)了 SpringMVC 的功能。
里面名為springMVC
的 Servlet 茎辐,也就是 DispatcherServlet ,它是SpringMVC 的核心掂恕,接下來(lái)的 <servlet-mapping>
中的 <url-pattern>/</url-pattern>
表示所有的請(qǐng)求都交給 DispatcherServlet 來(lái)處理拖陆,中間的 <init-param>
標(biāo)簽,表示要裝入的 Spring 配置文件懊亡。
2. spring-mvc.xml 的配置
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
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 http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<context:component-scan base-package="com.free.springmvc"/>
<mvc:annotation-driven/>
</beans>
這個(gè) xml 只有兩個(gè)標(biāo)簽依啰,第一個(gè)標(biāo)簽 <context:component-scan base-package="com.free.springmvc"/>
的意思是告訴 Spring 容器需要掃描哪個(gè)包下的 bean,以下是我的包結(jié)構(gòu):
因?yàn)檫@里只講解 SpringMVC 的知識(shí)店枣,所以只建了一個(gè) Controller 包速警。
第二個(gè)標(biāo)簽 <mvc:annotation-driven/>
是告訴 Spring ,需要開啟注解鸯两,即 @Controller
@RestController
等等闷旧。
以上的配置,就完成了 SpringMVC 的最基本配置钧唐,接下來(lái)就可以編寫控制器來(lái)測(cè)試一下 SpringMVC 的 HelloWorld 忙灼。
三: 編寫控制器
我們?cè)?controller
包下新建一個(gè) Java 類文件。
這里的 @RestController
以及 @RequestMapping
詳細(xì)內(nèi)容將在以后的章節(jié)講述钝侠,這里簡(jiǎn)單說(shuō)明该园。
1. @RestController
表示 HelloController 將被注入到 Spring 容器中,并且會(huì)將該類中的方法中的返回值以數(shù)據(jù)的形式(可以是:字符串机错、 JSON爬范、 XML父腕、 HTML等)返回給客戶端弱匪。
2. @RequestMapping
SpringMVC 接受到請(qǐng)求之后,會(huì)對(duì)請(qǐng)求進(jìn)行解析璧亮,然后決定交給哪一個(gè)控制器的哪一個(gè)方法來(lái)處理萧诫,@RequestMapping
所標(biāo)注的方法,就是用來(lái)處理對(duì)應(yīng)請(qǐng)求的枝嘶。也就是帘饶,當(dāng)客戶端發(fā)送一個(gè)名為 hello
的請(qǐng)求,那么 SpringMVC 將會(huì)以字符串的形式返回 hello SpringMVC
這樣的字符串?dāng)?shù)據(jù)給客戶端群扶。
四: 最終效果
源代碼已經(jīng)上傳到碼云
https://git.oschina.net/aimufree/springmvc_lessons.git
主頁(yè)
http://git.oschina.net/aimufree/springmvc_lessons