Spring注解

  • 请求型注解     @RestController注解相当于@ResponseBody + @Controller合在一起的作用。
  1. 如果只是使用@RestController注解Controller,则Controller中的方法无法返回jsp页面,或者html,配置的视图解析器 InternalResourceViewResolver不起作用,返回的内容就是Return 里的内容。
  2. 如果需要返回到指定页面,则需要用 @Controller配合视图解析器InternalResourceViewResolver才行。如果需要返回JSON,XML或自定义mediaType内容到页面,则需要在对应的方法上加上@ResponseBody注解。
  • 参数型注解    @RequestMapping:是一个用来处理请求地址映射的注解(将请求映射到对应的控制器方法中),可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。
    • 参数:
  1. value:定义request请求的映射地址。
  2. method:定义地request址请求的方式,包括【GET, POST, HEAD, OPTIONS, PUT, PATCH, DELETE, TRACE.】默认接受get请求,如果请求方式和定义的方式不一样则请求无法成功。
  3. params:定义request请求中必须包含的参数值。
  4. headers:定义request请求中必须包含某些指定的请求头,如:RequestMapping(value = "/something", headers = "content-type=text/*"),说明请求中必须要包含"text/html", "text/plain"这中类型的Content-type头,才是一个匹配的请求。
  5. consumes:定义请求提交内容的类型。
  6. produces:指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回。
  • 绑定单个请求参数值注解   @RequestParam:用于将请求参数数据映射到功能处理方法的参数上。
    • 参数:
  1. value:参数的名称。
  2. required:定义该传入参数是否必须默认为true。(和@RequestMapping的params属性有点类似)
  • @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支持该注解的注入。
    • @Resource :@Resource默认按照ByName自动注入,由J2EE提供,需要导入包javax.annotation.Resource。@Resource有两个重要的属性:name和type,而Spring将@Resource注解的name属性解析为bean的名字,而type属性则解析为bean的类型。所以,如果使用name属性,则使用byName的自动注入策略,而使用type属性时则使用byType自动注入策略。如果既不制定name也不制定type属性,这时将通过反射机制使用byName自动注入策略。
 
    • @Autowired:@Autowired为Spring提供的注解,需要导入包org.springframework.beans.factory.annotation.Autowired。只按照byType注入。
原文地址:https://www.cnblogs.com/LJing21/p/10482362.html