Spring 4发布很长一段时间了,从 Spring 3 到 Spring 4 有巨大的改变。网上还有很多教程是基于 Spring 3.0 的,甚至 Spring 2.5,要想按照网上的教程“按图索骥”还是挺困难的。纵有一些 Spring 4.0 MVC 的教程例子,也往往是 “Spring MVC + hibernate 集成实例”这样的例子,想找一个浅显点的例子都难。

所以,下面就是一个浅显的例子,只为对 Spring 4.0 MVC 形成一个最初的印象。

项目目录结构

带箭头的是需要改的

项目搭建过程

(1)使用 maven 建立一个 web 项目( 教程点此 ),pom.xml文件加入如下依赖包:

注意注意:一定要记得在项目属性里,设置 Deployment Assembly,将Maven Dependencies加入发布路径里。设置完后运行时才会把 pom.xml 文件里的依赖加入到 /WEB-INF/lib 目录下。

<dependencies><!-- spring 核心模块 --><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>4.2.4.RELEASE</version></dependency><!-- spring 上下文模块 --><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>4.2.4.RELEASE</version></dependency><!-- spring web  --><!-- 提供web支持 --><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>4.2.4.RELEASE</version></dependency> <!-- spring web mvc --><!-- 提供web mvc  --><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>4.2.4.RELEASE</version></dependency></dependencies>

(2)新建 web.xml 文件,如下:

<?xml version="1.0" encoding="UTF-8"?>
<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" version="3.0"><!--1 指出 spring 配置文件的位置 --><context-param><param-name>configLocation</param-name><param-value>/WEB-INF/applicationContext.xml</param-value></context-param><!--2 容器加载监听器, 监听到服务器启动的时候,根据spring 配置文件,创建Spring容器 --><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><!--3 spring MVC的分发器,这是一个标准的Servlet,按照spring MVC的约定,这个Servlet 的配置文件应该叫做:<servlet name >-servlet.xml -->  <servlet><servlet-name>spring</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>spring</servlet-name><url-pattern>/</url-pattern></servlet-mapping><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list></web-app>

配置 1、2 属于Spring Web范畴,既是在web项目中使用Spring的方式,使用监听器监听到服务器启动时自动创建Spring容器。对比一下,在普通项目中一般是硬编码来创建Spring容器:

public static void main(String[] args){ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");}

配置 3 属于Spring MVC,通过配置一个Servlet,匹配所有以“/”开头的请求,作为Spring MVC的入口。

(3)创建spring配置文件,默认为applicationContext.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:p="http://www.springframework.org/schema/p"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"><!--加入下面两个配置,就可以用注解方式配置bean-->  <context:annotation-config></context:annotation-config><context:component-scan base-package="com.huanle"/></beans>

(4)创建spring MVC的分发控制器的配置文件(默认为 < servlet name >-servlet.xml),DispatcherServlet根据这里的配置进行请求分发

<?xml version="1.0" encoding="UTF-8"?>
<!--加入了MVC命名空间 -->
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:p="http://www.springframework.org/schema/p"xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc.xsd"><!--下面两个配置使得可以在项目中使用mvc注解,如@Controller-->  <mvc:annotation-driven></mvc:annotation-driven><context:component-scan base-package="com.huanle.controller"/></beans>

(5)创建controller,使用@Controller注解和@RequestMapping注解,代码如下:

/*
@Controller注解将SayHelloController 类配置为一个控制器Bean,这个Bean就可以接受http请求了;@RequestMapping("/SayHello")配置了这个Bean的访问方式
*/
@Controller
@RequestMapping("/SayHello")
public class SayHelloController {/*@RequestMapping注解配置了helloWorld 方法的访问方式return 语句返回一个重定向字符串*/  @RequestMapping( path = "/getAnswer" , method = RequestMethod.GET)public String helloWorld() {return "redirect:/answer.jsp";}}

这个Controller可以通过

localhost:8080/huanle/SayHello/getAnswer

访问。huanle 是工程名

Spring 4 MVC入门实例相关推荐

  1. Eclipse环境下 spring MVC 入门实例

    实现一个spring 的登陆事例 1.在eclipse下新建动态网页工程springmvc  2.需要导入jar包.     aopalliance.jar;commons-beanutils.jar ...

  2. ASP.NET MVC入门---实例演示:通过ContentResult实现主题定制

    实例演示:通过ContentResult实现主题定制 由于可以通过ContentResult的ContentType属性指定媒体类型,所以我们不仅仅可以利用它来返回最终会在浏览器中显示的文本,还可以返 ...

  3. Spring MVC + Spring + Hibernate + mysql 注册登陆入门实例

    Spring MVC + Spring + Hibernate + mysql 注册登陆入门实例 (1) 结构 (说明目的是要做在线聊天室的,也包含登陆注册部分,先用这部分做个例子)开发环境用的是ST ...

  4. Spring MVC入门

    1.Spring Web MVC是什么 Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解 ...

  5. spring框架mvc框架_Spring的MVC测试框架入门–第1部分

    spring框架mvc框架 最新推出的主要Spring框架是Spring MVC测试框架,Spring Guys声称它是"一流的JUnit支持,可通过流畅的API测试客户端和服务器端Spri ...

  6. spring框架mvc框架_Spring MVC测试框架入门–第2部分

    spring框架mvc框架 这个迷你系列的第一个博客介绍了Spring MVC测试框架,并演示了其在单元测试Spring MVC Controller类中作为控制器而不是POJO进行单元测试的用途. ...

  7. Spring MVC入门 —— 跟开涛学SpringMVC

    2014-05-14 23:22:27 第二章 Spring MVC入门 -- 跟开涛学SpringMVC  浏览(84979)|评论(12)   交流分类:Java|笔记分类: 跟开涛学Spring ...

  8. Spring oxm入门实例

    O/XMapper是什么? Spring3.0的一个新特性是O/XMapper.O/X映射器这个概念并不新鲜,O代表Object,X代表XML.它的目的是在Java对象(几乎总是一个plainoldJ ...

  9. ASP.NET MVC入门到精通——Spring.net-业务层仓储

    本系列目录:ASP.NET MVC4入门到精通系列目录汇总 上一节,我们已经把项目框架的雏形搭建好了,那么现在我来开始业务实现,在业务实现的过程当中,不断的来完善我们现有的框架. 1.假设我们来做一个 ...

最新文章

  1. shell去除字符串前所有的0
  2. 关于Domain-Specific Languages
  3. DZ各个数据表详解(DZ论坛各表详细说明,二次开发用)
  4. c语言程序设计复习提纲,C语言程序设计复习提纲
  5. 云炬随笔20180421
  6. 【推荐系统】深入理解YouTube推荐系统算法
  7. C# 学生成绩管理系统 完整版
  8. 2019-02-26-算法-进化(字符串转换成整数)
  9. ACM算法--spfa算法--最短路算法
  10. ncverilog脚本_NC-Verilog仿真详解
  11. java阻塞锁_java – 阻止锁与非阻塞锁
  12. ie8兼容性视图灰色修复_win8系统设置IE8浏览器兼容性视图的方法
  13. FlinkWindow和水印
  14. Missing Parts——Alpha 第 3 季NFT作品集来啦!
  15. 交互设计师作品集网站整理
  16. 让 M1 芯片的 MacBook Pro 同时支持两个 4k 显示器
  17. 来套近乎啊——思维导图
  18. 练手项目|Node.js实战——轻松实现听歌识曲
  19. Linux查找文件重复内容
  20. 获取文件后缀名(doc.excel)

热门文章

  1. 用Elasticsearch代替数据库存储日志方式
  2. 7、Flutter banner_view 轮播图的使用
  3. centos7编译 openjdk8
  4. arrayrand php,php中array_rand函数的功能起什么作用呢?
  5. Spring aop优雅实现redis分布式锁 aop应用redis分布式锁
  6. 谷粒商城--API三级分类--网关统一配置跨域
  7. MySQL官方备份_Mysqlbackup 备份详解(mysql官方备份工具)
  8. (JAVA)IO缓冲区
  9. 【软件开发底层知识修炼】二十七 C/C++中的指针与数组是不同的
  10. 应该算是在说 delphi 的日志框架吧