SpringBoot中写接口常用的注解

一、@GetMapping、@PostMapping和@RequestMapping的区别

在Spring MVC 中使用 @RequestMapping来映射请求,也就是通过它来指定控制器可以处理哪些URL请求,相当于Servlet中在web.xml中配置的映射作用一致。

@GetMapping是一个作为快捷方式的组合注释,相当于
@RequestMapping(method = RequestMethod.GET)
@PostMapping是一个作为快捷方式的组合注释,相当于@RequestMapping(method = RequestMethod.POST)

参考博客:https://blog.csdn.net/renanrenan/article/details/84654362/

二、@RequestBody与@RequestHeader的区别

	import org.springframework.web.bind.annotation.*;
	
	@GetMapping("/getSign")  
    public String genUserSig(@RequestHeader("sign") String sign){
    
    
        String sign = "2021314";
        return sign;
    }
    @PostMapping("/selectUser")
    public String selectUserPhotoAndName(@Valid @RequestBody SelectUserFrom form){
    
    
        String userSelected = "";
        return userSelected;
    }

参考博客:https://blog.csdn.net/kobejayandy/article/details/12690161

三、@ResponseBody的作用

这里讨论下: @ResponseBody在什么情况下使用?
先来看一段代码:

@Controller
@RequestMapping("/")
public class HelloController {
    
    

	@RequestMapping(value = "/something", method = RequestMethod.GET)
	@ResponseBody
	public String helloWorld() {
    
    
		return"Hello World";
	}
}

运行以上代码,在浏览器地址栏输入: http://localhost:8080/something
运行结果,页面上输出 Hello World
如果去掉 @ResponseBody,会出现Whitelabel Error Page 404的错误。
在这里插入图片描述
结果分析:如果在一个方法上使用了@RequestMapping注解,方法的返回值通常解析为跳转的路径, 也就是说要跳转到指定的jsp页面。在这个代码示例中,表示要跳转到的是 Hello World.jsp页面。 因为工程中尚未添加这个jsp文件,所以报出了 404 错误 (The requested resource is not available)。
如果添加了 @ResponseBody这个注解, 则表明该方法的返回值直接写入到 HTTP Response Body中。 这就是说,如果返回的是JSON, 就得必须添加 @ResponseBody这个注解
一般在异步获取数据时使用。在使用@RequestMapping后,返回值通常解析为跳转路径,加上@ResponseBody后返回结果不会被解析为跳转路径,而是直接写入HTTP response body中。比如异步获取json数据,加上@ResponseBody后,会直接返回json数据。

四、@Valid的用法

参考博客:https://blog.csdn.net/weixin_38118016/article/details/80977207

猜你喜欢

转载自blog.csdn.net/loongkingwhat/article/details/116139709