1.
Controller控制层组件,定义一个springMVC的控制器类,往往需要和
RequestMapping配合使用。2.
RestController相当于
ResponseBody+Controller合在一起的作用。3.
Service服务层组件,用于标注业务层组件,表示定义一个bean,自动根据bean的类名实例化一个首写字母为小写的bean,也可以指定bean的名称:
Service(“beanName”)。4.
Repository持久层组件,用于标注数据访问组件,即DAO组件。
5.
Component把普通pojo实例化到spring容器中,相当于配置文件中的beanid=class=/。
6.
RequestMapping用于配置控制层的访问URL,可以用在控制器类上和控制器方法上,如果用在控制器类上,则访问类中的方法是要加上类上的路径,例如:
ControllerRequestMapping(/personal/linkInfo)publicclassLinkInfoController{
RequestMapping(value=/addLinkInfo)publicStringaddLinkInfo(LinkInfoReqlinkInfoReq){
linkInfoService.addLinkInfo(linkInfoReq);
returnredirect:/personal/linkInfo/toLinkInfo;
}
}
上述代码的访问路径就是XXX/personal/linkInfo/addLinkInfo。
RequestMapping源代码如下图:a)value:设置访问的URL,数组,可以将多个请求映射到一个方法上去。支持通配符配置
代码示例:
RequestMapping(value={/page,/page*})publicvoidgetInfo(){
}
上述代码访问路径可以是:XXX/page,XXX/pageadc等满足value条件的路径。
b)method:设置访问的方法,数组,可是设置多个访问方法映射到同一个方法上,默认为GET方法
代码示例:
RequestMapping(value=/page,method=RequestMethod.POST)publicvoidgetInfo(){
}
上述代码/page路径就只能用POST方法才能请求。
method的可选值有GET,HEAD,POST,PUT,PATCH,DELETE,OPTIONS,TRACE。
c)params:指定request中必须包含某些参数值是,才让该方法处理。数组。
RequestMapping(value=/page,params={type=1})publicvoidgetInfo(){
}
上述代码/page路径只有请求参数中包含type且值等于1时才能访问该方法。
d)headers:指定request中必须包含某些指定的header值,才能让该方法处理请求。数组。
示例代码:
RequestMapping(value=/page,headers={content-type=text/plain})publicvoidgetInfo(){
}
上述代码/page路径只有headers中content-type=text/plain才能访问该方法。
e)consumes:指定处理请求的提交内容类型(Content-Type),例如application/json,text/html。
f)produces:指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回。
7.
ResponseBody通常使用在controller方法上,作用是将方法的返回值通过合适的HttpMessageConverter转换成特定格式写入到response的body区域,然后返回给客户端,如果没有使用
RequestBody注解,方法返回值将会封装到ModelAndView并解析返回视图。8.
RequestParam接受的参数来自requestHeader,即请求头,用来接收GET和POST请求参数并将参数赋值到被
RequestParam注解的变量上,同样可以使用requet.getParameter(“name”)获取,默认的参数接受方式,如果controller方法的参数未使用RequestParam,则默认也是使用RequestParam接受参数。用来处理Content-Type:为application/x-