第二章:Hello World

2017-09-16  本文已影响0人  紫萱草_

因为有 Spring 的依赖注入,所以实现 SpringMVC 的 Demo 非常简单。

一: 构建

这里使用 Maven 构建,以下是 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版本号 -->
    <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 的最基本配置,只实现了 SpringMVC 的功能。
里面名为springMVC 的 Servlet ,也就是 DispatcherServlet ,它是SpringMVC 的核心,接下来的 <servlet-mapping> 中的 <url-pattern>/</url-pattern> 表示所有的请求都交给 DispatcherServlet 来处理,中间的 <init-param> 标签,表示要装入的 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>

这个 xml 只有两个标签,第一个标签 <context:component-scan base-package="com.free.springmvc"/> 的意思是告诉 Spring 容器需要扫描哪个包下的 bean,以下是我的包结构:

包结构

因为这里只讲解 SpringMVC 的知识,所以只建了一个 Controller 包。

第二个标签 <mvc:annotation-driven/> 是告诉 Spring ,需要开启注解,即 @Controller @RestController 等等。

以上的配置,就完成了 SpringMVC 的最基本配置,接下来就可以编写控制器来测试一下 SpringMVC 的 HelloWorld 。

三: 编写控制器

我们在 controller 包下新建一个 Java 类文件。

简单的控制器

这里的 @RestController 以及 @RequestMapping 详细内容将在以后的章节讲述,这里简单说明。

1. @RestController

表示 HelloController 将被注入到 Spring 容器中,并且会将该类中的方法中的返回值以数据的形式(可以是:字符串、 JSON、 XML、 HTML等)返回给客户端。

2. @RequestMapping

SpringMVC 接受到请求之后,会对请求进行解析,然后决定交给哪一个控制器的哪一个方法来处理,@RequestMapping 所标注的方法,就是用来处理对应请求的。也就是,当客户端发送一个名为 hello 的请求,那么 SpringMVC 将会以字符串的形式返回 hello SpringMVC 这样的字符串数据给客户端。

四: 最终效果

最终效果

源代码已经上传到码云
https://git.oschina.net/aimufree/springmvc_lessons.git
主页
http://git.oschina.net/aimufree/springmvc_lessons

上一篇下一篇

猜你喜欢

热点阅读