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,如果没有传该参数,就使用默认值

posted @ 2021-11-02 16:26  yjyww  阅读(39)  评论(0编辑  收藏  举报