600微单相机多功能便携单反八爪鱼手机三角支架三脚架

配备参数

  • 类型:三角架
  • 材质:合金
  • 脚管反折:不支持
  • 竖拍:支持
  • 脚架包:

翻看完整参数>>

 研究一下spring

mvc

 

 

 springMVC是什么?

 

Spring  MVC是一种基于Java的完成了Web MVC设计方式的呼吁驱动类型的轻量级Web框架,将web层举办职务解耦,基于央浼驱动指的就是利用央浼-响应模型,Spring MVC简单的讲,最重视的效果与利益正是帮咱们简化开垦。

 

 

springMVC的好处?

 

√让大家能特别轻巧的安顿出到底的Web层

√进行更轻便的Web层的花费;

√天生与Spring框架集成(如IoC容器、AOP等);

√帮助灵活的U智跑L到页面调整器的炫丽;

√特别轻巧与其他视图才能集成,如Velocity、Free马克尔等等,因为模型数据不放在特定的API里,而是位于贰个Model里

√极度灵活的多少印证、格式化和多少绑定机制,能动用任何对象开展数量绑定,不必达成特定框架的API;

√支持Restful风格。

 

 

 

一个呼吁是何许被SpringMVC接受,管理,并回到的: 

 

 

 图片 1

 

 

HandlerAdapter

微型Computer的适配器,用来绑定数据,剖析数据,管理重返值等等。

 

若是我们并未有一点点名暗许的HandlerAdapter的时候,spring MVC 会采纳暗中认可的类RequestMappingHandlerAdapter来充当Adapter剧中人物。 看一下RequestMappingHandlerAdapter类。

 

 

 

 

一、 springMVC 之 参数深入分析器 ——
ArgumentResolver

 

SpringMVC,对我们印象最深入的自然它强大的参数绑定机制,简单来讲正是透过SpringMVC,大家得以把前台各样繁复的数据结构组装好,后台平素能够以指标的措施收受并绑定好数据。

 

 

大家来研讨一下spring MVC是何等剖判参数並且绑定数据,其他,分析器分别辅助什么参数类型。

 

 

有多个参数,customArgumentResolvers和argumentResolvers,分别是自定义的参数深入分析器和私下认可的参数分析器。

 

 

接口的概念,HandlerMethodArgumentResolver。

 

 

周围的实现(HandlerMethodArgumentResolver的实现)。

非常多,

 

1>.RequestParamMethodArgumentResolver–>那个分析器可以为参数上加了RequestParam注解的参数提供支持

2>.RequestParamMapMethodArgumentResolver,协助参数上加了RequestParam证明并且是Map类型的参数.

3>.PathVariableMethodArgumentResolver,援救参数上加了PathVariable注脚而且不是Map类型的参数,

4>.PathVariableMapMethodArgumentResolver,帮忙参数上加了PathVariable注脚并且参数类型为Map的参数,

5>.RequestResponseBodyMethodProcessor帮衬参数上加了RequestBody表明的参数,

6>.RequestPartMethodArgumentResolver支持参数上了RequestPart表明的参数,

7>.ServletCookieValueMethodArgumentResolver帮助参数上加了CookieValue评释的参数.

8>.ExpressionValueMethodArgumentResolver帮助参数上加了Value表明的参数

 

 

 

 

 

 

简易看三个有血有肉的兑现

1>.RequestParamMethodArgumentResolver–>这几个分析器可认为参数上加了RequestParam证明的参数提供支撑             
 

            1)@RequestParam表明的参数

            2)另一种便是总结类型,如Integer、String、Date、UENCOREI,
UHighlanderL,Locale

            3) MultipartFile类型的公文上传

 

 

2>.RequestResponseBodyMethodProcessor—>补助参数上加了@Request表明的参数

 

 

 

它的发言人(封装和落到实处)HandlerMethodArgumentResolverComposite。

通过措施getArgumentResolver迭代去搜寻可用的resolver直到TRUE;

 

 

 

初始化。

 

 

 

哪些充实ArgumentResolver?

 

WebMvcConfigurationSupport

 

WebMvcConfigurerAdapter

 

@Override

    public void
addArgumentResolvers(List<HandlerMethodArgumentResolver>
argumentResolvers) {

        argumentResolvers.add(resolver);

    }

 

 

 

 

 推荐应用

 

 1、PageableHandlerMethodArgumentResolver 

 

 

怎样自定义增添ArgumentResolver?

 

 

怎样促成 

public Object test(Teacher teacher, Student
student){

 

}

(1) @RequestBody的办法 (2) 自已定义三个 HandlerMethodArgumentResolver(怎么定义呢)

 

 

 

二、 springMVC 之 再次回到值管理器 ——
HandlerMethodReturnValueHandler

 

四个央浼中有入参的绑定管理,那么自然也是有响应参数的管理

HandlerMethodReturnValueHandler正是用来拍卖当含有@RequestMapping的办法调节实现后,前面要进行的政工。 

 

 

有三个参数,customReturnValueHandlers和returnValueHandlers,分别是自定义的重临值管理器和暗许的再次来到值管理器。

 

 

广大的落到实处。

也丰裕多

 

1>. ViewNameMethodReturnValueHandler重临值类型是String 可能void类型的

2>. ModelAndViewMethodReturnValueHandler 重回值类型是ModelAndView或其子类

3>. ModelMethodProcessor 再次来到值类型是Model或其子类

4>. ViewMethodReturnValueHandler 再次来到值类型是View或其子类

5>. ModelAttributeMethodProcessor 重临值有@ModelAttribute注明

6>. MapMethodProcessor 重回值是Map的

 

 

简单易行看多少个有血有肉的完成

1>.ViewNameMethodReturnValueHandler 帮忙处理重返值是void或String的

2>.RequestResponseBodyMethodProcessor 支持管理重返值被@ResponseBody表明的

 

 

接口的定义
HandlerMethodReturnValueHandler,
封装实现是HandlerMethodReturnValueHandlerComposite。

 

规律和参数分析器同样, 调用艺术 selectHandler ,有所不一样,多达成了AsyncHandlerMethodReturnValueHandler,协助管理部分异步的再次来到值,比如promise。

 

 

初始化。

 

怎么着加多

 

怎样贯彻自定义的
HandlerMethodReturnValueHandler,

 

比如说要达成再次来到类型是的有个别Tid从long改成String

  @RequestMapping(value = “/test3”)

    public Object test3(){

        Trade trade = new Trade();

        trade.setUserId(11878123L);

        trade.setTid(91234444L);

        trade.setSellerNick(“q奇园”);

        return trade;

    }

 

 

其中mavContainer.setRequestHandled(true);

 

标识着本次诉求是还是不是是由handler本人说了算的,true表示本方法会响应伏乞。

行使本身的贯彻后,须求去除controller方法上的@ResponseBody注脚,因为大家不再须要运用暗中同意的Computer。

 

 

三、springMVC 之 音讯调换器 ——
HttpMessageConverter

 

Http央浼和响应报文本质上都以一串字符串,当呼吁报文被Java读取之后,它会被卷入成为一个ServletInputStream的输入流,供大家读取报文。响应报文则是因此三个ServletOutputStream的输出流,来输出响应报文。我们从流中,只好读取到原始的字符串报文,一样,我们往输出流中,也只可以写原始的字符。可是大家在Java中, 全数东西都是以指标来做拍卖的。

             大家不容许手动的把字符串转成对象,简单来讲,从字符串到java所认知的对象这一管理进程,就是由HttpMessageConverter来成功的。

 

图片 2

 

 

HttpInputMessage类正是http乞求报文的肤浅。

HttpOutputMessage类就是SpringMVC内部对二回Http响应报文的空洞

 

再来看看消息转变器的架空
HttpMessageConverter。

 

 

 

广泛的落到实处

 

StringHttpMessageConverter: 能够从呼吁中读和写 String
data。

FormHttpMessageConverter:能够从、中读和写 form data。

ByteArrayMessageConverter:可以从呼吁中读和写 byte arrays。

马歇尔ingHttpMessageConverter:XML的调换要求运用Spring的 马歇尔er 和
Unmarshaller.

MappingJacksonHttpMessageConverter:JSON的转换.

 

 

 

举个例证,具体落到实处

StringHttpMessageConverter

 

@RequestMapping(value=”/string”,
method=RequestMethod.POST)

@ResponseBody

public String readString(@RequestBody String string)
{

    return “Read string ‘” + string + “‘”;

}

在SpringMVC步入readString方法前,会凭借@RequestBody评释选用特别的HttpMessageConverter完成类来将呼吁参数解析到string变量中,具体来讲是运用了StringHttpMessageConverter类,它的canRead()方法再次回到true,然后它的read()方法会从呼吁中读出须求参数,绑定到readString()方法的string变量中。

 

当SpringMVC推行readString方法后,由于重回值标记了@ResponseBody,SpringMVC将动用StringHttpMessageConverter的write()方法,将结果作为String值写入响应报文,当然,此时canWrite()方法再次来到true。

 

 

 

 

 

 

 

引入应用

MappingJackson2HttpMessageConverter

 

诚如加上对Java8时间的剖析帮助。

 

怎么加多messageConvert?

 

 

 

 

 

 

 

 

 

四、需要值和重返值增强——RequestBodyAdvice,ResponseBodyAdvice

 

ResponseBodyAdvice是spring4.1的新特色,其功能是在响应体写出事先做一些甩卖;比方,修改重临值、对再次来到值统金立密等。

 

 

接口的定义

 

 

 

看下AbstractMessageConverterMethodProcessor类

作者们一般在章程writeWithMessageConverters从前调用

从那几个能够看到,我们能够在利用这一个HandlerMethodReturnValueHandler的时候,我们能对重回值重回之前做联合管理。

 

 

初始化

 

initControllerAdviceCache();

 

 

添加ResponseBodyAdvice

 

先是一个落到实处类,完成RequestBodyAdvice,然后在类上丰裕注明@ControllerAdvice,比方有个别央浼的参数供给做加密管理,可以在此将json串解密管理,再管理。

 

 

 

 

 

 

 

 

 

 

Post Author: admin

发表评论

电子邮件地址不会被公开。 必填项已用*标注