SpringMvc-原理分析
文章平均质量分 86
OkidoGreen
这个作者很懒,什么都没留下…
展开
-
SpringBoot(@ControllerAdvice) ResponseBodyAdvice接口全局统一返回控制,Api返回值是String 类型时异常
简而言之:因为API接口返回的是String类型,默认会被StringHttpMessageConverter转换器捕获(支持所有MediaType 并且 接口返回值是 String,并在RequestResponseBodyMethodProcessor#handleReturnValue,writeWithMessageConverters方法中的 canWrite 方法 进行判断通过后,加入可被选择的返回值转换器中)解决方案:在controlleradvice中增加单独处理。原创 2023-05-25 17:04:56 · 654 阅读 · 0 评论 -
spring和springmvc的父子容器的关系
首先,必须先理解spring在web容器的是如何运行的。1 对于一个web应用,当其部署在web容器上时,web容器就会给其提供一个全局的上下文环境ServletContext. 这个上下文环境将为后面的所有的spring有关的容器提供宿主环境,相当于是提供一个仓库。后面的所有的容器都将装在里面。补充:什么是ServletContex对象?ServletContext对象是...转载 2019-11-11 12:02:29 · 623 阅读 · 0 评论 -
spring与springmvc父子容器
转载地址:http://www.tianshouzhi.com/api/tutorials/spring1、spring和springmvc父子容器概念介绍在spring和springmvc进行整合的时候,一般情况下我们会使用不同的配置文件来配置spring和springmvc,因此我们的应用中会存在至少2个ApplicationContext实例,由于是在web应用中,因此最终实例化的是...转载 2019-11-11 12:00:04 · 598 阅读 · 0 评论 -
mvc:annotation-driven 和 context:component-scan 之间的关系
转自http://blog.csdn.net/caolaosa...现在常用框架中SpringMVC.xml配置是:<mvc:annotation-driven/>和<context:component-scan>那么<context:annotation-config/>呢?首先看一下三个注解各自定义:1<context:annotation...转载 2019-10-26 12:45:10 · 1204 阅读 · 0 评论 -
SpringMVC之RequestContextHolder分析
最近遇到的问题是在service获取request和response,正常来说在service层是没有request的,然而直接从controlller传过来的话解决方法太粗暴,后来发现了SpringMVC提供的RequestContextHolder遂去分析一番,并借此对SpringMVC的结构深入了解一下,后面会再发文章详细分析源码1.RequestContextHolder的使用...转载 2019-10-21 19:19:19 · 776 阅读 · 1 评论 -
SpringMVC之类型转换Converter
https://www.cnblogs.com/ssslinppp/p/4598102.html1. 摘要在spring 中定义了3中类型转换接口,分别为: Converter接口 :使用最简单,最不灵活; ConverterFactory接口 :使用较复杂,比较灵活; GenericConverter接口 :使用最转载 2018-04-03 15:50:25 · 764 阅读 · 0 评论 -
SpringMVC处理静态文件源码分析
SpringMVC处理静态资源,主要是两个标签,mvc:resources和 mvc:default-servlet-handler。在详细说明他们的原理之前,需要先简单说明下SpringMVC中请求处理机 制:HandlerMapping和HandlerAdapter。1 HandlerMapping和HandlerAdapter的来由用过python Django框架的都知道D转载 2016-10-09 17:12:33 · 1140 阅读 · 0 评论 -
springmvc中controller注入request的线程安全问题
http://m.blog.csdn.net/forlovedoit/article/details/53204667本文全部转载于http://www.cnblogs.com/developer-ios/p/5918999.htmlSpringMvc学习心得(四)springmvc中request的线程安全问题转载 2017-12-20 11:45:22 · 1408 阅读 · 0 评论 -
在SpringMVC Controller中注入Request成员域
https://www.cnblogs.com/abcwt112/p/7777258.html主题 在工作中遇到1个问题....我们定义了一个Controller基类,所有Springmvc自定义的controller都继承它....在它内部定义一个@Autowired HttpServletRequest request;可不可以? 能不能从这个对象里取requ转载 2017-12-20 11:40:40 · 4623 阅读 · 0 评论 -
Springmvc中在controller注入request会有线程安全问题吗
@Controllerpublic class AController{ @Autowire HttpServletRequest request; @RequestMapping("/test") public Result test(){ System.out.println(request.toString());转载 2017-12-20 10:27:12 · 2369 阅读 · 0 评论 -
SpringMVC在Controller层中注入request的坑
https://my.oschina.net/sluggarddd/blog/678603?fromerr=XhvpvVTi摘要: 记一次为了节省代码没有在方法体中声明HttpServletRequest,而用autowire直接注入所钻的坑###结论 给心急的人。 直接在Controller的成员变量上使用@Autowire声明HttpServletRequest,这转载 2017-12-20 10:34:18 · 1051 阅读 · 0 评论 -
web.xml中出现<servlet>default</servlet>是什么意思?
转:http://blog.csdn.net/hello5orld/article/details/9407905在web.xml文件中经常看到这样的配置<servlet-name>default</servlet-name>,这个配置的作用是:对客户端请求的静态资源如图片、JS文件等的请求交由默认的servlet进行处理,如下所示: [html] view p...转载 2017-10-17 10:14:21 · 4905 阅读 · 0 评论 -
SpringMVC源码分析系列[转]
说到java的mvc框架,struts2和springmvc想必大家都知道,struts2的设计基本上完全脱离了Servlet容器,而springmvc是依托着Servlet容器元素来设计的,同时springmvc基于Spring框架,Spring框架想必搞java的同学都很熟悉。一进Spring的官网就发现了这样一排醒目的文字, spring可以让我们构造简单的、便携的、又快又易转载 2016-12-14 16:58:28 · 1975 阅读 · 0 评论 -
SpringMVC关于json、xml自动转换的原理研究[附带源码分析]
https://www.cnblogs.com/fangjian0423/p/springMVC-xml-json-convert.html目录前言现象源码分析实例讲解关于配置总结参考资料前言SpringMVC是目前主流的Web MVC框架之一。 如果有同学对它不熟悉,那么请参考它的入门blog:http://www.cnblogs.com/转载 2018-01-26 11:15:35 · 716 阅读 · 0 评论 -
SpringMVC中StringHttpMessageConverter乱码处理
http://blog.csdn.net/wangyangbto/article/details/48804155很多人都碰到过,SpringMVC使用 @ResponseBody 注解,返加字符串不做任何处理时,有可能会出现乱码问题。这是由于 StringHttpMessageConverter 类中,默认采用的字符集是 ISO-8859-1。public c转载 2018-01-26 11:16:05 · 937 阅读 · 0 评论 -
Servlet容器Tomcat中web.xml中url-pattern的配置详解[附带源码分析]
目录前言现象源码分析实战例子总结参考资料前言今天研究了一下tomcat上web.xml配置文件中url-pattern的问题。这个问题其实毕业前就困扰着我,当时忙于找工作。 找到工作之后一直忙,也就没时间顾虑这个问题了。 说到底还是自己懒了,没花时间来研究。今天看了tomcat的部分源码 了解了这个url-pattern的机制。 下面让我一一道来。转载 2016-10-09 17:44:53 · 1319 阅读 · 0 评论 -
spring MVC cors跨域实现源码解析
https://www.cnblogs.com/leftthen/p/6378090.html名词解释:跨域资源共享(Cross-Origin Resource Sharing)当一个资源从与该资源本身所在的服务器不同的域、协议或端口请求一个资源时,资源会发起一个跨域 HTTP 请求。spring MVC自4.2开始添加了跨域的支持。跨域具体的定义请移步mozilla查看...转载 2019-07-17 22:41:01 · 1103 阅读 · 0 评论 -
详解SpringMVC中Controller的方法中参数的工作原理[附带源码分析]
https://www.cnblogs.com/fangjian0423/p/springMVC-request-param-analysis.html目录前言现象源码分析编写自定义的HandlerMethodArgumentResolver总结参考资料前言SpringMVC是目前主流的Web MVC框架之一。如果有同学对它不熟悉,那么请参考它的入门blo...转载 2019-05-30 14:13:11 · 4861 阅读 · 1 评论 -
Spring Mvc 一次请求 的 流程图 及 类构成
原创 2019-05-30 12:32:07 · 649 阅读 · 0 评论 -
Spring MVC源码研究:数据绑定
http://www.cnblogs.com/guangshan/p/4431800.html在做Spring MVC时,我们只需用@Controllor来标记Controllor的bean,再用@RequestMapping("标记")来标记需要接受请求的方法,方法中第一个参数为HttpServletRequest类型,最后一个参数为Model类型,中间可以为任何POJO,只要符合标准,有s...转载 2018-07-19 15:41:14 · 824 阅读 · 0 评论 -
java中什么是bridge method(桥接方法)
https://blog.csdn.net/mhmyqn/article/details/47342577https://www.cnblogs.com/strinkbug/p/5019453.html在看spring-mvc的源码的时候,看到在解析handler方法时,有关于获取桥接方法代码,不明白什么是桥接方法,经过查找资料,终于理解了什么是桥接方法。什么是桥接方法桥接方法是 ...转载 2018-07-19 14:59:29 · 5069 阅读 · 2 评论 -
Spring MVC中的ResponseEntity和ResponseBody的区别
https://blog.csdn.net/qq_36582604/article/details/805209371.ResponseEntity的优先级高于@ResponseBody。在不是ResponseEntity的情况下才去检查有没有@ResponseBody注解。如果响应类型是ResponseEntity可以不写@ResponseBody注解,写了也没有关系。2.ResponseEnt...转载 2018-06-30 21:31:05 · 1592 阅读 · 0 评论 -
Spring mvc 标签对应处理Java类
spring-webmvc-4.3.9.RELEASE.jarpublic class MvcNamespaceHandler extends NamespaceHandlerSupport { @Override public void init() { registerBeanDefinitionParser("annotation-driven", new AnnotationDr...原创 2018-04-03 16:11:58 · 764 阅读 · 0 评论 -
SpringMVC深度探险 —— SpringMVC核心配置文件详解
在上一篇文章中,我们从DispatcherServlet谈起,最终为读者详细分析了SpringMVC的初始化主线的全部过程。整个初始化主线的研究,其实始终围绕着DispatcherServlet、WebApplicationContext和组件这三大元素之间的关系展开。 在文章写完之后,也陆续收到了一些反馈,其中比较集中的问题,是有关WebApplicationContext对组件进行初始转载 2016-10-19 16:00:38 · 1243 阅读 · 0 评论 -
SpringMVC深度探险 —— DispatcherServlet与初始化主线
在上一篇文章中,我们给出了构成SpringMVC应用程序的三要素以及三要素的设计过程。让我们来归纳一下整个设计过程中的一些要点: SpringMVC将Http处理流程抽象为一个又一个处理单元SpringMVC定义了一系列组件(接口)与所有的处理单元对应起来SpringMVC由DispatcherServlet贯穿始终,并将所有的组件串联起来在整个过程中,组件和DispatcherS转载 2016-10-19 15:59:08 · 1241 阅读 · 0 评论 -
SpringMVC 各类 视图解析器分析
前言 在前一篇博客中讲了SpringMVC的Controller控制器,在这篇博客中将接着介绍一下SpringMVC视图解析器。当我们对SpringMVC控制的资源发起请求时,这些请求都会被SpringMVC的DispatcherServlet处理,接着Spring会分析看哪一个HandlerMapping定义的所有请求映射中存在对该请求的最合理的映射。然后通过该HandlerMappin原创 2014-10-24 13:04:58 · 2386 阅读 · 0 评论 -
解析mediaTypes+viewResolvers+viewResolvers
spring在解析视图的时候有两个重要的接口:ViewResolver 和 ViewViewResolver 中只有一个方法 resolveViewName ,提供 view name 和 实际 view的映射;View 中两个方法 getContentType 和 render ,解析请求中的参数并把这个请求处理成某一种 View.说白了,就是ViewResolver 负责怎么去转载 2014-12-01 22:39:19 · 4093 阅读 · 0 评论 -
Spring MVC 视图解析 Resolving views
Spring MVC 学习(五) 视图解析 Resolving viewsBy yulezhandian 2013 年 1 月 10 日Spring MVCNo Comments17.5 Spring MVC Resolving views所有WEB应用程序的 MVC 框架都提供了决策视图的方式。 Spring MVC 提供了视图 resolvers,可以使你无需绑转载 2014-12-03 09:51:33 · 6444 阅读 · 0 评论 -
Spring mvc 视图解析器 ContentNegotiatingViewResolver 源码分析
步骤概要:方法resolveViewName中获取mediaType(由accept-header中获取,springmvc每个view的默认contenttype为text/html),根据访问的viewname与mediaType查找候选视图集合candidateViews,再根据方法getBestView获取最优视图并返回。原创 2014-12-03 14:19:49 · 35330 阅读 · 2 评论 -
Spring mvc 原理浅析
Spring MVC主要包括以下要点:1:由DispatcherServlet控制的整个流程;2:注解驱动的控制器,其中包括请求映射、数据的绑定和格式化;3:文件上传;4:一些杂项,如静态资源处理、异常处理等等。这些东西构成了精致的Spring MVC框架,下面我将针对这些要点做详细讨论,以期其能在开发上对各位观众有些作用。1. Spring MVC框架原理转载 2014-12-01 21:49:38 · 24951 阅读 · 5 评论 -
SpringMVC中使用@RequestBody,@ResponseBody注解实现Java对象和XML/JSON数据自动转换(下)
上一篇分析了spring中是如何通过使用@ResponseBody注解,实现自动转换Java对象为XML,JSON数据到Reponse中。接下来看看如果request中包含了XML或者JSON数据,反过来,如何来通过@RequestBody注解来自动转换为Java对象。配合@RequestBody注解,以及HTTP Request Header中的Content-Typ转载 2016-10-11 11:46:38 · 3312 阅读 · 0 评论 -
SpringMVC中使用@RequestBody,@ResponseBody注解实现Java对象和XML/JSON数据自动转换(上)
Spring3.1开始使用新的HandlerMapping 和 HandlerAdapter 来支持@Contoller 和@RequestMapping注解处理:处理器映射RequestMappingHandlerMapping和处理器适配器RequestMappingHandlerAdapter组合来代替Spring2.5 开始的处理器映射DefaultAnnotationHandlerMap转载 2016-10-11 11:45:13 · 2099 阅读 · 0 评论 -
spring mvc json及各类视图解析 源码分析
附上自己项目的配置文件:<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/conte原创 2016-08-24 07:54:46 · 3004 阅读 · 0 评论 -
SpringMVC关于json、xml自动转换的原理研究
视图配置省略.....pom中需要有以下依赖(Spring依赖及其他依赖不显示): org.codehaus.jackson jackson-core-asl 1.9.13 org.codehaus.jackson jackson-mapper-asl 1.9.13 这个依赖分别转载 2016-08-25 11:14:13 · 1397 阅读 · 0 评论 -
tomcat的url-pattern的源码分析
1 静态文件的处理前言分析最近想把SpringMVC对于静态资源的处理策略弄清楚,如它和普通的请求有什么区别吗?有人可能就要说了,现在有些静态资源都不是交给这些框架来处理,而是直接交给容器来处理,这样更加高效。我想说的是,虽然是这样,处理静态资源也是MVC框架应该提供的功能,而不是依靠外界。这里以tomcat容器中的SpringMVC项目为例。整个静态资源的访问,效果图如下:可转载 2016-10-09 17:11:24 · 2029 阅读 · 0 评论 -
SpringMVC关于json、xml自动转换的原理研究[附带源码分析]
目录前言现象源码分析实例讲解关于配置总结参考资料前言SpringMVC是目前主流的Web MVC框架之一。 如果有同学对它不熟悉,那么请参考它的入门blog:http://www.cnblogs.com/fangjian0423/p/springMVC-introduction.html现象本文使用的demo基于maven,是根据入门blog的例子继转载 2016-10-10 19:02:23 · 1057 阅读 · 0 评论 -
SpringMVC源码总结(一)HandlerMapping和HandlerAdapter入门
刚接触SpringMVC,对它的xml文件配置一直比较模模糊糊,最近花了一点时间稍微看了下源代码,再加上调试,开始逐渐理解它,网上的类似的内容有很多,写本文主要是自己加深一下理解。本文适合用过SpringMVC的开发者,言归正传,首先搭建一个最简单的工程体验一下。 该工程是基于maven的,pom配置不再说明,所使用的spring版本4.0.5。 首先是web.xml文件配置,最简单的转载 2016-10-14 16:24:16 · 2220 阅读 · 2 评论 -
SpringMVC源码总结(二)mvc:annotation-driven以及@Controller和@RequestMapping的那些事
上一篇文章让我们了解HandlerMapping和HandlerAdapter以及默认采取的策略,这篇文章就要讲述mvc:annotation-driven对默认策略的改变。它背后到底注册了哪些HandlerMapping和HandlerAdapter。 首先可以在DispatcherServlet的initStrategies方法中的initHandlerMappings和initHan转载 2016-10-14 16:24:49 · 1876 阅读 · 0 评论 -
SpringMVC深度探险 —— SpringMVC概览
本文是专栏文章(SpringMVC深度探险)系列的文章之一,博客地址为:http://downpour.iteye.com/blog/1330596。 对于任何事物的研究,总是由表及里、由浅入深地进行。在本系列的第二篇文章中,我们将通过不同的观察视角,对SpringMVC做一些概要性的分析,帮助大家了解SpringMVC的基本构成要素、SpringMVC的发展历程以及SpringMVC的设转载 2016-10-17 17:25:50 · 1063 阅读 · 0 评论 -
SpringMVC源码总结(十二)ViewResolver介绍
首先我们先看看ModelAndView中重要的View接口。 View接口: Java代码 String getContentType(); /** * Render the view given the specified model. * The first step will be preparing the转载 2016-10-14 17:32:07 · 2147 阅读 · 0 评论