与struts2属于竞争关系,是MVC框架。

1.依赖

<dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>4.0.6.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>4.0.6.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context-support</artifactId><version>4.0.6.RELEASE</version></dependency>
</dependencies>

2.配置

2.1 web.xml

web.xml模板,让tomcat容器根据请求转发到springmvc dispatcher。

<?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/j2ee" xmlns:web="http://xmlns.jcp.org/xml/ns/javaee"xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"version="2.4"><servlet><servlet-name>springmvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!-- specify the exact path --><init-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/config/springmvc-config.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>/springmvc/*</url-pattern></servlet-mapping>
</web-app>

2.2 springmvc-config

告诉mvc框架,有哪些controller。推荐基于注解的方式,这样在配置文件中只要指定去哪里扫描含有注解的类就行了。
默认DispatcherServlet会加载WEB-INF/[DispatcherServlet的Servlet名字]-servlet.xml配置文件。
 <!--XXX-servlet.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:lang="http://www.springframework.org/schema/lang" xmlns:tx="http://www.springframework.org/schema/tx"xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context"xmlns:cache="http://www.springframework.org/schema/cache" xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:task="http://www.springframework.org/schema/task"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/langhttp://www.springframework.org/schema/lang/spring-lang.xsd      http://www.springframework.org/schema/tx   http://www.springframework.org/schema/tx/spring-tx.xsd    http://www.springframework.org/schema/aop     http://www.springframework.org/schema/aop/spring-aop.xsd    http://www.springframework.org/schema/mvc     http://www.springframework.org/schema/mvc/spring-mvc.xsd   http://www.springframework.org/schema/context     http://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/cachehttp://www.springframework.org/schema/cache/spring-cache.xsdhttp://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd"><context:annotation-config /><!-- 自动扫描指定包及其子包下的所有Bean类 --><context:component-scan base-package="com.yichudu.springmvc"/>
</beans>

2.3ApplicationContext.xml

ContextLoaderListener在启动Web容器时,自动装配/WEB-INF/ApplicationContext.xml文件中的配置信息。因为它实现了ServletContextListener这个接口,在web.xml配置这个监听器,启动容器时,就会默认执行它实现的方法。

3.相关注解

3.1 路由相关

@Controller
请求总要落到某个controller上处理。
@RequestMapping
可以加在类上,也可以加在方法上。value参数表明path,method参数表示方法。

3.2 请求参数注入

@RequestParam
对应url中的query参数。

3.3 指定返回类型

@ResponseBody

4.感知ApplicationContext

除了让spring主动注入,我们也可以在代码中拿到context,随心所欲地拿bean,更灵活。
@Component
public class ContextUtil implements org.springframework.context.ApplicationContextAware{public static ApplicationContext context = null ;@Overridepublic void setApplicationContext(ApplicationContext appcontext) throws BeansException {context = appcontext ;}
}

5.常见问答

问:各个path之间的关系是什么?
答:第一层——webapp的目录名;第二层——servlet的url-pattern;第三层——controller类上的RequestMapping;第四层——controller类中方法上的RequestMapping。

Spring MVC (mvc框架)相关推荐

  1. spring mvc + mybatis 框架搭建 ( idea + gradle)

    spring mvc + mybatis 框架搭建 idea + gradle 刚刚入门,只是个人见解,如有错误或者问题欢迎指出指正. 邮箱: [ wgh0807@qq.com ] 文章引用: [ap ...

  2. Spring MVC测试框架

    原文链接:http://jinnianshilongnian.iteye.com/blog/2004660 Spring MVC测试框架详解--服务端测试 博客分类: springmvc杂谈 spri ...

  3. Spring MVC的框架组件

    Spring MVC的框架组件 DispatcherServlet:前端控制器 用户请求到达前端控制器,它相当于MVC中的C,dispatcherServlet没有处理业务的能力,它是整个流程的控制中 ...

  4. (十)Spring 与 MVC 框架整合

    Spring 整合 MVC 目录 MVC 框架整合思想 为什么要整合 MVC 框架 搭建 Web 运行环境 Spring 整合 MVC 框架的核心思路 1. 准备工厂 2. 代码整合 Spring 整 ...

  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测试框架入门–第1部分

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

  8. Spring MVC测试框架入门–第2部分

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

  9. 14.6 Spring MVC 测试框架(翻译)

    14.6 Spring MVC 测试框架(每天翻译一点点) Spring MVC测试框架对 Spring MVC 代码提供一流的测试支持 ,它拥有一个 fluent API ,可以和JUnit, Te ...

  10. Spring 与 MVC 框架整合思路

    Spring 整合 MVC MVC 框架整合思想 为什么要整合 MVC 框架 搭建 Web 运行环境 Spring 整合 MVC 框架的核心思路 1. 准备工厂 2. 代码整合 Spring 整合 S ...

最新文章

  1. LeetCode简单题之设计停车系统
  2. linux root------系统排错
  3. mongodb安装_MongoDB事实:商品硬件上每秒插入80000次以上
  4. python学完可以干啥-Python学完可以做什么
  5. Receiver ED、Link quality indicator (LQI)、Clear channel assessment (CCA)究竟是什么?802.15.4标准
  6. BeanUtils的学习
  7. 数据倾斜原理及解决方案
  8. 程序员专属段子集锦 5/10
  9. ajax error的报错提示
  10. 服务器设计笔记(1)-----消息的封装
  11. 券商IT的建设一定要有全局观、前瞻性,要走在业务前面,而不是被动响应
  12. sqlserver常用语法
  13. 163editor 网页编辑器 获值
  14. 点击复制按钮进行复制文本
  15. 如何用PS缩小图片而清晰度不变?
  16. unity2d物体3d效果
  17. 一种基于XGBOOST的企业员工稳定性(员工离职)预测方法
  18. 开发问题1:在微服务项目中,如果一个服务工程不需要数据库但因为其父工程引入了数据库的依赖的话,会出现启动类启动动不了的问题
  19. 厦门大学计算机科学学院,厦门大学张俊松
  20. 如何借助SVG+CSS用2个小时撸完一个网易云音乐的动效海报(可控制速度)

热门文章

  1. 2018福布斯全球科技女性TOP 50榜单:李飞飞、滴滴柳青上榜
  2. 自动驾驶落地物流场景,嬴彻科技驶入快车道
  3. 中国成全球第二AI医疗交易国,上半年AI制药融资数等于去年全年 | 报告
  4. 乔丹LeCun李开复隔空对话:我们对智能一无所知;AI研究的12大趋势
  5. 一行代码,Pandas秒变分布式,快速处理TB级数据
  6. vue 父组件使用keep-alive和infinite-scroll导致在子组件触发父组件的infinite-scroll方法...
  7. JVM中的垃圾收集算法
  8. Java IO(input output)流二
  9. Devexpress控件中TreeList的递归绑定数据
  10. Linux下apache+php+mysql配置攻略