由于工作中突然需要用到Java去写工程,而对于一些Spring和SpringBoot注解我又不清楚,因此把实际工程中碰到的注解都总结起来,方便记忆以及后续查阅。也会收藏一些我觉得写的比较好的文章。如有错误,欢迎指正。如有侵权,给您造成不便,麻烦您联系我删除,谢谢。
1.@RestController,@Controller以及@ResponseBody注解
@ResponseBody:表示处理函数直接将函数的返回值传到浏览器端显示。
@Controller:表示的是一个处理HTTP请求的控制器(即MVC中的C)
@RestController=@ResponseBody+@Controller
使用@Controller 注解,在对应的方法上,视图解析器可以解析return 的jsp,html页面,并且跳转到相应页面
若返回json等内容到页面,则需要加@ResponseBody注解。但是无法返回jsp页面,或者html,配置的视图解析器 InternalResourceViewResolver不起作用。
简单介绍参考:https://www.cnblogs.com/shuaifing/p/8119664.html
@RequestMapping以及@GetMapping
@RequestMapping("/"):实际为@RequestMapping("/",method = RequestMethod.GET),默认调用的是GET请求。
@GetMapping等价于@RequestMapping
实际上@RequestMapping("/")是@RequestMapping("/",method = RequestMethod.GET)的简写,即可以通过method属性,设置请求的HTTP方法。比如PUT /hello请求,对应@RequestMapping("/hello",method = RequestMethod.PUT)
Spring MVC最新的版本中提供了一种更加简洁的配置HTTP方式,增加了四个标注:
- PutMapping
- GetMapping
- PostMapping
- DeleteMapping
@PathVariable注解:直接用例子来看,即可以得到前端请求的变量的值
@RequestMapping("/users/{username}")
@ResponseBody
public String userProfile(@PathVariable("username") String username)
@RequestParam,与@PathVariable的区别:@PathVariable获取的前端传过来的变量值需要在@RequestMapping请求的路径上面标明。但是@RequestParam不用,它用的是变量名=具体值的方式来标明。
主要可以参考该文章:http://www.cnblogs.com/zhlblogs/p/9553491.html
@Autowired注解
@Autowired 注释:它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。 通过 @Autowired的使用来消除 set ,get方法。
@RequestBody
在使用springmvc的时候,后台@RequestBody接收的一定是一个json格式的字符串,常用于PostMapping请求当中。实际工作时,一般前后端都会先定义好要传过来的内容。如果是一个Map,就通过get键值的方式获取相应的值。如果是基本数据类型,就直接定义一个像他类型的基本数据类型接收即可。
详细可参考文章:https://blog.youkuaiyun.com/justry_deng/article/details/80972817
https://www.jianshu.com/p/4981911d5e15
@RequestParam注解
之前对这个的理解一直以为只能用于Get请求,然后内容都是在请求的路径的?后面的内容,后面才知道原来Post请求也可以使用,请求的值是在form-data当中。例子如下:
可参考文章:http://www.cnblogs.com/zhlblogs/p/9553491.html