springMvc与spring注解

请求和参数型注解:

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支持该注解的注入。

1. @Resource :@Resource默认按照ByName自动注入,由J2EE提供,需要导入包javax.annotation.Resource。
        @Resource有两个重要的属性:name和type,而Spring将@Resource注解的name属性解析为bean的名字,而type属性则解析为bean的类型。
        所以,如果使用name属性,则使用byName的自动注入策略,而使用type属性时则使用byType自动注入策略。如果既不制定name也不制定type属性,这时将通过反射机制使用byName自动注入策略。
2.@Autowired:@Autowired为Spring提供的注解,需要导入包org.springframework.beans.factory.annotation.Autowired;只按照byType注入。

参考:https://www.cnblogs.com/caijh/p/7744604.html

猜你喜欢

转载自www.cnblogs.com/LJing21/p/10482362.html