零基础搭建 spring mvc 4 项目(本文基于 Servlet 3.0)

作者各必备工具的版本如下:

  1. Tomcat:apache-tomcat-7.0.63 (下载链接)
  2. Java EE - Eclipse:Luna Service Release 1 v4.4.1 (下载链接)
  3. Spring:4.2.0.RELEASE (无须下载)
  4. JDK:1.7.0_67 (下载链接)

步骤 1

使用 Java EE - Eclipse 新建一 Dynamic Web Project。
零基础搭建 spring mvc 4 项目(本文基于 Servlet 3.0)

步骤 2

输入项目名 bdp。
零基础搭建 spring mvc 4 项目(本文基于 Servlet 3.0)
Target Runtime 选 Apache Tomcat 7.0(不要选 Apache Tomcat 6.0,7 以后才支持 Servlet 3.0)。
点击 Next > 按钮。

步骤 3

编辑默认的 Source folders。
默认的 Source folders 配置如下:
零基础搭建 spring mvc 4 项目(本文基于 Servlet 3.0)
删除默认的,增加以下四个并修改默认的输出目录为 WebContent\WEB-INF\classes:

  • src/main/java
  • src/main/resources
  • src/test/java
  • src/test/resources

零基础搭建 spring mvc 4 项目(本文基于 Servlet 3.0)
点击 Next > 按钮。

步骤 4

Configure web module settings 对话框勾选 Generate web.xml deployment descriptor 选项:
零基础搭建 spring mvc 4 项目(本文基于 Servlet 3.0)
点击 Finish 按钮。

步骤 5

将新建好的项目转换为 Maven 项目以管理项目依赖。
Package Explorer 视图下右击 bdp 项目名 -> Configure -> Convert to Maven project。

步骤 6

添加以下 jar 依赖到项目:
零基础搭建 spring mvc 4 项目(本文基于 Servlet 3.0)
我的 pom.xml 文件如下:

  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/xsd/maven-4.0.0.xsd">
  3. <modelVersion>4.0.0</modelVersion>
  4. <groupId>bdp</groupId>
  5. <artifactId>bdp</artifactId>
  6. <version>1.0.0</version>
  7. <packaging>war</packaging>
  8. <name>bdp</name>
  9. <description>Basic Data Platform</description>
  10. <properties>
  11. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  12. <spring.version>4.2.0.RELEASE</spring.version>
  13. </properties>
  14. <dependencies>
  15. <dependency>
  16. <groupId>org.springframework</groupId>
  17. <artifactId>spring-context</artifactId>
  18. <version>${spring.version}</version>
  19. </dependency>
  20. <dependency>
  21. <groupId>org.springframework</groupId>
  22. <artifactId>spring-aop</artifactId>
  23. <version>${spring.version}</version>
  24. </dependency>
  25. <dependency>
  26. <groupId>org.springframework</groupId>
  27. <artifactId>spring-webmvc</artifactId>
  28. <version>${spring.version}</version>
  29. </dependency>
  30. <dependency>
  31. <groupId>org.springframework</groupId>
  32. <artifactId>spring-web</artifactId>
  33. <version>${spring.version}</version>
  34. </dependency>
  35. <dependency>
  36. <groupId>javax.servlet</groupId>
  37. <artifactId>jstl</artifactId>
  38. <version>1.2</version>
  39. </dependency>
  40. <dependency>
  41. <groupId>commons-logging</groupId>
  42. <artifactId>commons-logging</artifactId>
  43. <version>1.1.3</version>
  44. </dependency>
  45. </dependencies>
  46. <build>
  47. <plugins>
  48. <plugin>
  49. <artifactId>maven-compiler-plugin</artifactId>
  50. <version>3.1</version>
  51. <configuration>
  52. <source>1.7</source>
  53. <target>1.7</target>
  54. </configuration>
  55. </plugin>
  56. <plugin>
  57. <artifactId>maven-war-plugin</artifactId>
  58. <version>2.4</version>
  59. <configuration>
  60. <warSourceDirectory>WebContent</warSourceDirectory>
  61. <failOnMissingWebXml>false</failOnMissingWebXml>
  62. </configuration>
  63. </plugin>
  64. </plugins>
  65. </build>
  66. </project>

步骤 7

在 src/main/resources 目录下创建 Spring MVC Bean 配置文件 bdpmvc-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:p="http://www.springframework.org/schema/p"
  4. xmlns:context="http://www.springframework.org/schema/context"
  5. xsi:schemaLocation="http://www.springframework.org/schema/beans
  6. http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
  7. http://www.springframework.org/schema/context
  8. http://www.springframework.org/schema/context/spring-context-4.0.xsd">
  9. <context:component-scan base-package="com.defonds.bdp.city.controller" />
  10. <bean id="viewResolver"
  11. class="org.springframework.web.servlet.view.UrlBasedViewResolver">
  12. <property name="viewClass"
  13. value="org.springframework.web.servlet.view.JstlView" />
  14. <property name="prefix" value="/WEB-INF/jsp/" />
  15. <property name="suffix" value=".jsp" />
  16. </bean>
  17. </beans>

以上 bdpmvc-servlet.xml 配置文件里,我们定义了一个 <context:component-scan> 标签。这一配置将使 Spring 去加载 com.defonds.bdp.city.controller 及其子包下的所有 @Component、@Controller、@Service、@Repository 等注解了的类。
此外,我们还定义了一个 viewResolver bean,它将给 ModelAndView 的视图加上 /WEB-INF/jsp/ 前缀以及 .jsp 后缀。比如我们的 CityController 类里返回了一个视图名为 welcome 的 ModelAndView 对象,它将被解析至路径 /WEB-INF/jsp/welcome.jsp。

步骤 8

将 Spring MVC 映射到 /WEB-INF/web.xml 文件。

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  3. <display-name>bdp</display-name>
  4. <welcome-file-list>
  5. <welcome-file>index.jsp</welcome-file>
  6. </welcome-file-list>
  7. <servlet>
  8. <servlet-name>bdpmvc</servlet-name>
  9. <servlet-class>
  10. org.springframework.web.servlet.DispatcherServlet
  11. </servlet-class>
  12. <init-param>
  13. <param-name>contextConfigLocation</param-name>
  14. <param-value>/WEB-INF/classes/bdpmvc-servlet.xml</param-value>
  15. </init-param>
  16. <load-on-startup>1</load-on-startup>
  17. </servlet>
  18. <servlet-mapping>
  19. <servlet-name>bdpmvc</servlet-name>
  20. <url-pattern>*.json</url-pattern>
  21. <url-pattern>*.html</url-pattern>
  22. </servlet-mapping>
  23. </web-app>

DispatcherServlet 初始化的时候将会读取 /WEB-INF/classes/ 下的 bdpmvc-servlet.xml 文件。

步骤 9

创建 Controller 类。

  • 包:com.defonds.bdp.city.controller
  • 类名:CityController.java
  1. /**
  2. * File Name:CityController.java
  3. *
  4. * Copyright Defonds Corporation 2015
  5. * All Rights Reserved
  6. *
  7. */
  8. package com.defonds.bdp.city.controller;
  9. import org.springframework.stereotype.Controller;
  10. import org.springframework.web.bind.annotation.RequestMapping;
  11. import org.springframework.web.servlet.ModelAndView;
  12. /**
  13. *
  14. * Project Name:bdp
  15. * Type Name:CityController
  16. * Type Description:
  17. * Author:Defonds
  18. * Create Date:2015-8-27
  19. * @version
  20. *
  21. */
  22. @Controller
  23. @RequestMapping("/city")
  24. public class CityController {
  25. @RequestMapping("/welcome")
  26. public ModelAndView helloWorld() {
  27. String message = "<br><div style='text-align:center;'>"
  28. + "<h3>********** Hello World, Spring MVC Tutorial</h3>This message is coming from CityController.java **********</div><br><br>";
  29. return new ModelAndView("welcome", "message", message);
  30. }
  31. }

步骤 10

创建 /WebContent/index.jsp 和 /WebContent/WEB-INF/jsp/welcome.jsp 视图文件。

/WebContent/index.jsp

  1. <html>
  2. <head>
  3. <title>Spring MVC Tutorial Series by defonds.com</title>
  4. <style type="text/css">
  5. body {
  6. background-image: url('http://img.blog.csdn.net/20150827184458936');
  7. }
  8. </style>
  9. </head>
  10. <body>
  11. <br>
  12. <div style="text-align:center">
  13. <h2>
  14. Hey You..!! This is your 1st Spring MCV Tutorial..<br> <br>
  15. </h2>
  16. <h3>
  17. <a href="city/welcome.html">Click here to See Welcome Message... </a>(to
  18. check Spring MVC Controller... @RequestMapping("/city/welcome"))
  19. </h3>
  20. </div>
  21. </body>
  22. </html>

/WebContent/WEB-INF/jsp/welcome.jsp

  1. <html>
  2. <head>
  3. <title>Spring MVC Tutorial by Defonds - Hello World Spring MVC
  4. Example</title>
  5. <style type="text/css">
  6. body {
  7. background-image: url('http://img.blog.csdn.net/20150827184458936');
  8. }
  9. </style>
  10. </head>
  11. <body>${message}
  12. <br>
  13. <br>
  14. </body>
  15. </html>

万事俱备,项目各要素如下图:
零基础搭建 spring mvc 4 项目(本文基于 Servlet 3.0)

步骤 11

右击项目名 -> Run As -> Maven Build...
Goals 添加 clean install,点击 Apply 和 Run 按钮。
零基础搭建 spring mvc 4 项目(本文基于 Servlet 3.0)

步骤 12

将项目部署到 Tomcat 并启动:
零基础搭建 spring mvc 4 项目(本文基于 Servlet 3.0)

步骤 13

访问 http://localhost:8080/bdp
零基础搭建 spring mvc 4 项目(本文基于 Servlet 3.0)
点击 Click here to See Welcome Message... 
零基础搭建 spring mvc 4 项目(本文基于 Servlet 3.0)

零基础搭建 spring mvc 4 项目成功。

后记

本文侧重讲 spring mvc 的相关配置,也就是 controller 层的相关功能演示,关于 spring ioc、orm 和 mybatis 的事务集成,请参考另一篇博客《零基础整合 spring 4(包括mvc、context、orm) + mybatis 3 示例》,该文就是在本文基础上进行进一步添加了 service 和 dao 层的扩展。

参考资料

上一篇:从零开始学 Java - 搭建 Spring MVC 框架


下一篇:virtualenv virtualenvwrapper 虚拟环境创建