随笔分类 -  springmvc

摘要:本文主要讲解如何使用Spring MVC4搭建RestFul Web service。我们新建一个进行CRUD操作的controller,使用http方法的POST、GET、PUT、DELETE来区分新建、查询、修改、删除。这个rest service使用json进行数据传输。我们使用CrossOrigin来解决跨域问题。 阅读全文
posted @ 2017-02-08 16:09 出门向左 阅读(689) 评论(0) 推荐(0) 编辑
摘要:spring MVC cors跨域实现源码解析。 CorsConfiguration 具体封装跨域配置信息的pojo。 CorsConfigurationSource request与跨域配置信息映射的容器。 CorsProcessor 具体进行跨域操作的类。 阅读全文
posted @ 2017-02-08 14:40 出门向左 阅读(8533) 评论(0) 推荐(0) 编辑
摘要:HandlerMethod及子类主要用于封装方法调用相关信息,子类还提供调用,参数准备和返回值处理等职责. 阅读全文
posted @ 2016-03-03 08:15 出门向左 阅读(31798) 评论(4) 推荐(1) 编辑
摘要:HandlerMethodArgumentResolver主要负责执行handler前参数准备工作. 接口定义supportsParameter和resolveArgument.主要分为 类型 阅读全文
posted @ 2016-03-02 09:37 出门向左 阅读(3420) 评论(0) 推荐(0) 编辑
摘要:ModelFactory是用来维护Model.主要两个职责:初始化model;处理器执行后将model中相应的参数同步到SessionAttributes中 阅读全文
posted @ 2016-03-01 08:23 出门向左 阅读(4009) 评论(0) 推荐(0) 编辑
摘要:使用SpringMVC开发时,可以使用@SessionAttributes注解缓存信息.这样业务开发时,就不需要一次次手动操作session保存,读数据. SessionAttributesHanlder在初始化时扫描类里的方法,找出@SessionAttributes注解,并解析,然后直接保存到attributeNames和attributeTypes中,再更新knownAttributeNames. 保存的话,也可以在后期storeAttributes和isHandlerSessionAttribute进行. 在读取,清除时,都是以knownAttributeNames为索引,然后委托SessionAttributeStore处理. 阅读全文
posted @ 2016-02-29 08:27 出门向左 阅读(1675) 评论(0) 推荐(0) 编辑
摘要:HandlerAdapter在处理请求时上下文数据的传递工作是由ModelAndViewContainer负责的. 就是记录HandlerMethodArgumentResolver 和 HandlerMethodReturnValueHandler 在处理handler时 使用的模型model和视图view相关信息. 同时兼顾@SessionAttributes和redirect的情况. 阅读全文
posted @ 2016-02-28 11:33 出门向左 阅读(2498) 评论(0) 推荐(1) 编辑
摘要:SpringMVC进行请求分发到不同的处理器后,需要使用HandlerAdapter来准备参数,调用执行,封装返回值.RequestMappingHandlerAdapter是处理最复杂,使用最普遍的. 这边主要是分析RequestMappingHandlerAdapter初始话:注解解析器初始化注册;返回值处理类初始化;全局注解@ControllerAdvice内容读取并缓存. 阅读全文
posted @ 2016-02-26 15:37 出门向左 阅读(3934) 评论(0) 推荐(1) 编辑
摘要:HandlerMapping将url分发到对应的handler处理器,并添加拦截器. 实现上,经典的接口+抽象类+具体算法实现. 阅读全文
posted @ 2016-02-25 08:34 出门向左 阅读(7138) 评论(0) 推荐(3) 编辑
摘要:使用@RequestMapping注解时,配置的信息最后都设置到了RequestMappingInfo中. RequestMappingInfo封装了PatternsRequestCondition,RequestMethodsRequestCondition,ParamsRequestCondition等,所以自己不干活,所有的活都是委托给具体的condition处理. 阅读全文
posted @ 2016-02-24 15:14 出门向左 阅读(6593) 评论(0) 推荐(1) 编辑
摘要:ConsumesRequestCondition 处理请求的提交内容类型(media-Type),例如application/json, text/html. 核心是MediaType和MediaTypeExpression接口. 阅读全文
posted @ 2016-02-24 08:28 出门向左 阅读(3960) 评论(0) 推荐(2) 编辑
摘要:@RequestMapping注解对应的条件匹配实现解读. 基础实现类分别实现content Type,请求头,request parameter,value(url),http method的匹配规则. 使用CompositeRequestCondition,RequestMappingInfo,RequestConditionHolder进行封装使用 阅读全文
posted @ 2016-02-23 18:44 出门向左 阅读(13054) 评论(1) 推荐(4) 编辑
摘要:AbstractHandlerMethodMapping实现接口getHandlerInternal,定义查找流程 RequestMappingInfoHandlerMapping根据RequestMappingInfo,细化匹配条件,并在匹配不到情况下,顽强的使用RequestCondition一再尝试匹配 虽然 RequestMappingHandlerMapping是受益方,但在这边什么都没做(就是在初始化时,根据@Controller,@RequestMapping注解生成RequestMappingInfo;并根据这两个注解判断是否目标Handler 实现isHandler) 阅读全文
posted @ 2016-02-23 14:45 出门向左 阅读(4371) 评论(0) 推荐(1) 编辑
摘要:初始化时,3个类的大致分工如下:   AbstractHandlerMethodMapping定义整个算法流程;   RequestMappingInfoHandlerMapping提供匹配条件RequestMappingInfo的解析处理;   RequestMappingHandlerMapping根据@RequestMapping注解生成 RequestMappingInfo,同时提供isHandler实现 阅读全文
posted @ 2016-02-23 11:22 出门向左 阅读(21722) 评论(0) 推荐(3) 编辑
摘要:AbstractHandlerMapping实现HandlerMapping接口定的getHandler 1. 提供getHandlerInternal模板方法给子类实现 2. 如果没有获取Handler,则使用默认的defaultHandler 3. 如果handler是string类型,从con 阅读全文
posted @ 2016-02-22 22:18 出门向左 阅读(2142) 评论(0) 推荐(0) 编辑
摘要:AbstractDetectingUrlHandlerMapping是通过扫描方式注册Handler,收到请求时由AbstractUrlHandlerMapping的getHandlerInternal进行分发. 阅读全文
posted @ 2016-02-22 21:19 出门向左 阅读(1691) 评论(0) 推荐(0) 编辑
摘要:SimpleUrlHandlerMapping只是参与Handler的注册,请求映射时由AbstractUrlHandlerMapping搞定. 阅读全文
posted @ 2016-02-22 17:45 出门向左 阅读(2053) 评论(0) 推荐(0) 编辑