Spring常用注解对比

@RestController与@Controller

@RestController = @Controller + @ResponseBody
@Controller 将当前修饰的类注入SpringBoot IOC容器,使得从该类所在的项目跑起来的过程中,这个类就被实例化。当然也有语义化的作用,即代表该类是充当Controller的作用
@ResponseBody 它的作用简短截说就是指该类中所有的API接口返回的数据,甭管你对应的方法返回Map或是其他Object,它会以Json字符串的形式返回给客户端,本人尝试了一下,如果返回的是String类型,则仍然是String。   

@RequestMapping

// 可用于类和方法上,表示请求的路径需要加上该注解中的值
1、 value, method;
value:用于指定HTTP请求资源(URI)的实际映射地址,当不指定具体的属性值时,默认是给该属性传递值;
method:指定请求的method类型, GET、POST、PUT、DELETE等;
2、 consumes,produces;
consumes:指定处理请求的提交内容类型(Content-Type),例如application/json, text/html;
produces: 指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回;
3、 params,headers;
params:指定request中必须包含某些参数值是,才让该方法处理。
headers:指定request中必须包含某些指定的header值,才能让该方法处理请求。
4、 name,path
name:
path:指定请求地址,基本=value。

在这里插入图片描述在这里插入图片描述


@RequestBody与@RequestParam区别

在这里插入图片描述
在这里插入图片描述

// @RequestBody
用在方法参数上面,用来将请求参数绑定到request body中,通过HttpMessageConverter封装为具体的JavaBean。通俗点讲就是你在一个参数上加上该注解,spring就会将request body中的json/xml对象解析成该参数类型的Javabean对象。
// get请求时不能使用,post请求时,可以将请求体中的参数json转换为对应的javabean。一个方法只能用一个
// @RequestParam
用在方法的参数上,主要用于将请求参数区域的数据映射到控制层方法的参数上。
1。value,name:请求中传入参数的名称,如果不设置后台接口的value值,则会默认为该变量名。

2。required:该参数是否为必传项。默认是true,表示请求中一定要传入对应的参数,否则会报404错误,如果设置为false时,当请求中没有此参数,将会默认为null,而对于基本数据类型的变量,则必须有值,这时会抛出空指针异常。如果允许空值,则接口中变量需要使用包装类来声明。

3。defaultValue:参数的默认值,如果请求中没有同名的参数时,该变量默认为此值。注意默认值可以使用SpEL表达式,如"#{systemProperties['java.vm.version']}"
//  原子类型:必须有值,否则抛出异常,如果允许空值请使用包装类代替。Boolean包装类型类型:默认Boolean.FALSE,其他引用类型默认为null。

@ResponseBody

@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface ResponseBody {

}
// 用在类,方法上,将请求结果以json格式返回

@PathVariable

在这里插入图片描述

// 作用于 方法上。可以将URL中的占位符参数绑定到注解的方法参数中。URL 中的 {xxx} 占位符可以通过@PathVariable(“xxx“) 绑定到操作方法的入参中。
//@PathVariable可以用来映射URL中的占位符到目标方法的参数中
@RequestMapping("/testPathVariable/{id}")
public String testPathVariable(@PathVariable("id") Integer id)
{
    System.out.println("testPathVariable:"+id);
    return SUCCESS;
}
// 持续更新,如有错误请指出
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值