spring/springboot几个方法注解的含义整理

@RequestMapping

可用于类或方法上,作用是处理请求地址的相关映射。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。
该注解有六个属性,分别为value, method,consumes,produces,params,headers。
value: 指定请求的实际地址。
method:指定请求的method类型,如:GET、POST等类型。
consumes:指定处理请求的提交内容类型(Content-Type)也就是前台传递的类型,例如application/json, text/html等。
produces:指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回。
params:指定request中必须包含某些参数值是,才让该方法处理。
headers:指定request中必须包含某些指定的header值,才能让该方法处理请求。

@Responsebody

@Responsebody 注解表示该方法的返回的结果直接写入 HTTP 响应正文(ResponseBody)中,一般在异步获取数据时使用。通常是在使用 @RequestMapping 后,返回值通常解析为跳转路径,加上 @Responsebody 后返回结果不会被解析为跳转路径,而是直接写入HTTP 响应正文中。
方法返回的内容,不放到模型中,也不会被解释为视图的名称,若返回 “hello”,则直接返回此字符串,而不会转为hello视图解释。

@Requestbody

@requestBody注解常用来处理content-type不是默认的application/x-www-form-urlcoded编码的内容,比如说:application/json或者是application/xml等。一般情况下来说常用其来处理application/json类型。@RequestBody接收的是一个Json对象的字符串,而不是一个Json对象。然而在ajax请求往往传的都是Json对象,用 JSON.stringify(data)的方式就能将对象变成字符串。同时ajax请求的时候也要指定dataType: “json”,contentType:“application/json” 这样就可以轻易的将一个对象或者List传到Java端,使用@RequestBody即可绑定对象或者List.

@GetMapping

等同于@RequestMapping(method = “RequestMethod.GET)

@PostMapping

等同于@RequestMapping(method = “RequestMethod.POST)

@PutMapping

等同于@RequestMapping(method = “RequestMethod.PUT)

@DeleteMapping

等同于@RequestMapping(method = “RequestMethod.DELETE)

@RequestParam

@RequestParam也同样支持multipart/form-data请求,但只适用于name-valueString类型的请求域。
该注解有两个属性: value、required;
value用来指定要传入值的id名称,required用来指示参数是否必须绑定。在方法参数里面如是:

public 
@ResponseBody 
JsonResult getUserByName(
@RequestParam(value = “name”, required = false) String name) 
{
} 

@RequestPart

@RequestPart这个注解用在multipart/form-data表单提交请求的方法上。一个HTTP文件上传服务示例:

public File uploadPath;
@RequestMapping(value="/upload/TBOXFile",method=RequestMethod.POST)
 public String processUploadFile(
   @RequestPart("data") MultipartFile data,
   @RequestPart("type") String type
                 ) throws IllegalStateException, IOException {
 
  //String filename = new String(data.getOriginalFilename().getBytes("iso-8859-1"), "utf-8"); 
  String filename  = data.getOriginalFilename();
  if(uploadPath!=null  )
  {
   System.out.println("filename="+filename);
   File saveFile = new File(uploadPath.getAbsolutePath(),filename);
   data.transferTo(saveFile);
  }
  else
  {
   System.out.println("[FileController]uploadPath is null or space!");
  }
  其他业务代码 ///
  
  return "redirect:/";
 }

@RequestVariable

用来获得请求url中的动态参数的。
在SpringMVC后台控制层获取参数的方式主要有两种:一种是request.getParameter(“name”),
另外一种是用注解@RequestParam直接获取

@RestController

方法的返回值被写到http的响应体中,返回的内容,将不放到模型中,也不被解释为视图的名称。
注解本身使用了
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented@Controller
@ResponseBody

@ConditionalOnClass

当类路径中存在某个类时,再决定是否执行自动配置

@ConditionalOnMissingClass

当类路径中不存在某个类时,再决定是否执行自动配置

@SpringBootApplication

简化自动配置、组件扫描的单独注解集,此注解包括以下注解:
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration@ComponentScan(excludeFilters = {
@Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
@Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })

其他内容:请求头的相应类型

Request header Content-Type:
常用的类型有:
application/x-www-form-urlencoded : 表单默认的提交数据的格式。
multipart/form-data : 当你需要在表单中进行文件上传时,就需要使用该格式;
application/xhtml+xml :XHTML格式;
application/xml : XML数据格式;
application/atom+xml :Atom XML聚合格式;
application/json : JSON数据格式
application/pdf :pdf格式;
application/msword : Word文档格式;
application/octet-stream : 二进制流数据(如常见的文件下载);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值