Java MVC
-
@RestController=@ResponseBody类的每一个方法返回的数据写给浏览器+@Controller
现在都是前后端分离,一般都不用@Controller注解,而是使用@RestController注解。
@RestController
注解是@Controller和
@ResponseBody
的合集,表示这是个控制器 bean,并且是将函数的返回值直 接填入 HTTP 响应体中,是 REST 风格的控制器。 -
@Autowired
自动导入对象到类中,自动装配,其作用是为了消除代码里的getter/setter与bean属性中的property。
- @Slf4j是用作日志输出的,一般会在项目每个类的开头加入该注解,如果不写下面这段代码,并且想用log
- @ApiOperation是用来构建Api文档的
@ApiOperation(value = “接口说明”, httpMethod = “接口请求方式”, response =“接口返回参数类型”, notes = “接口发布说明”;其他参数可参考源码;
-
@RequestBody
用于读取 Request 请求(可能是 POST,PUT,DELETE,GET 请求)的 body 部分并且Content-Type 为 application/json 格式的数据,接收到数据之后会自动将数据绑定到 Java 对象上去。系统会使用
HttpMessageConverter
或者自定义的HttpMessageConverter
将请求的 body 中的 json 字符串转换为 java 对象。@RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的);而最常用的使用请求体传参的无疑是POST请求了,所以使用@RequestBody接收数据时,一般都用POST方式进行提交。在后端的同一个接收方法里,@RequestBody与@RequestParam()可以同时使用,@RequestBody最多只能有一个,而@RequestParam()可以有多个。需要注意的是:一个请求方法只可以有一个
@RequestBody
,但是可以有多个@RequestParam
和@PathVariable
。 - @RestMapping 映射请求
- @SpringBootApplication
这个注解是SpringBoot项目的基石,创建SpringBoot项目之后会默认在主类加上。
可以把@SpringBootApplication看作是@Configuration、@EnableAutoConfiguration、@ComponentScan注解的集合。
根据SpringBoot官网,这三个注解的作用分别是:
@EnableAutoConfiguration:启用SpringBoot的自动配置机制。
@ComponentScan:扫描被@Component(@Service,@Controller)注解的bean,注解默认会扫描该类所在的包下所有的类。
@Configuration:允许在Spring上下文中注册额外的bean或导入其他配置类。
用于定义配置类,标注在类上,相当于把该类作为spring的xml配置文件中的,作用是用于配置spring容器(应用上下文)。
-
@PathVariable
当使用@RequestMapping URI template 样式映射时, 即 someUrl/{paramId}, 这时的paramId可通过 @Pathvariable注解绑定它传过来的值到方法的参数上。
处理常见的HTTP请求类型
5种常见的请求类型:
-
GET :请求从服务器获取特定资源。例如:
GET /users
(获取所有学生) -
POST :在服务器上创建一个新的资源。例如:
POST /users
(创建学生) -
PUT :更新服务器上的资源(客户端提供更新后的整个资源)。例如:
PUT /users/12
(更新编号为 12 的学生) -
DELETE :从服务器删除特定的资源。例如:
DELETE /users/12
(删除编号为 12 的学生) -
PATCH :更新服务器上的资源(客户端提供更改的属性,可以看做作是部分更新),使用的比较少,这里就不举例子了。
- Get请求-@GetMapping
@GetMapping("users") 等价于@RequestMapping(value="/users",method=RequestMethod.GET)
-
Post请求-@PostMapping
@PostMapping("users") 等价于@RequestMapping(value="/users",method=RequestMethod.POST)
-
Put请求-@PutMapping
@PutMapping("/users/{userId}") 等价于@RequestMapping(value="/users/{userId}",method=RequestMethod.PUT)
-
Delete请求-@DeleteMapping
@DeleteMapping("/users/{userId}")等价于@RequestMapping(value="/users/{userId}",method=RequestMethod.DELETE)
-
Patch请求-@PatchMapping
一般实际项目中,我们都是PUT不够用才使用PATCH请求去更新数据。
-
@PathVariable和@RequestParam
@PathVariable用于获取路径参数,@RequestParam:将请求参数绑定到你控制器的方法参数上(是springmvc中接收普通参数的注解)
-
语法:@RequestParam(value=”参数名”,required=”true/false”,defaultValue=””)
value:参数名
required:是否包含该参数,默认为true,表示该请求路径中必须包含该参数,如果不包含就报错。
defaultValue:默认参数值,如果设置了该值,required=true将失效,自动为false,如果没有传该参数,就使用默认值