请求和参数型注解:
1.@RestController注解相当于@ResponseBody + @Controller合在一起的作用。
1) 如果只是使用@RestController注解Controller,则Controller中的方法无法返回jsp页面,或者html,
配置的视图解析器 InternalResourceViewResolver不起作用,返回的内容就是Return 里的内容。
2) 如果需要返回到指定页面,则需要用 @Controller配合视图解析器InternalResourceViewResolver才行。
如果需要返回JSON,XML或自定义mediaType内容到页面,则需要在对应的方法上加上@ResponseBody注解。
2.@RequestMapping:是一个用来处理请求地址映射的注解(将请求映射到对应的控制器方法中),可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。
参数:
- value:定义request请求的映射地址
- method:定义地request址请求的方式,包括【GET, POST, HEAD, OPTIONS, PUT, PATCH, DELETE, TRACE.】默认接受get请求,如果请求方式和定义的方式不一样则请求无法成功。
- params:定义request请求中必须包含的参数值。
- headers:定义request请求中必须包含某些指定的请求头,如:RequestMapping(value = "/something", headers = "content-type=text/*")说明请求中必须要包含"text/html", "text/plain"这中类型的Content-type头,才是一个匹配的请求。
- consumes:定义请求提交内容的类型。
- produces:指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回
3.@RequestParam绑定单个请求参数值:用于将请求参数数据映射到功能处理方法的参数上。
参数:
- value:参数的名称
- required:定义该传入参数是否必须,默认为true,(和@RequestMapping的params属性有点类似)
4.@ResponseBody:该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。
(返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)使用)
组件型注解:
1.@Component 在类定义之前添加@Component注解,他会被spring容器识别,并转为bean。
2.@Repository 对Dao实现类进行注解
3.@Service 用于对业务逻辑层进行注解
4.@Controller 用于控制层注解
以上四种注解都是注解在类上的,被注解的类将被spring初始话为一个bean,然后统一管理。
@Resource和@Autowired都是做bean的注入时使用,其实@Resource并不是Spring的注解,它的包是javax.annotation.Resource,需要导入,但是Spring支持该注解的注入。
参考:https://www.cnblogs.com/caijh/p/7744604.html