zoukankan      html  css  js  c++  java
  • spring注解

    @ApiOperation
    @RequestMapping
    @ResponseBody
    @PathVariable
    @Validated

    @ResponseBody是作用在方法上的,@ResponseBody 表示该方法的返回结果直接写入 HTTP response body 中,
    一般在异步获取数据时使用【也就是AJAX】,在使用 @RequestMapping后,返回值通常解析为跳转路径,
    但是加上 @ResponseBody 后返回结果不会被解析为跳转路径,而是直接写入 HTTP response body 中。
    比如异步获取 json 数据,加上 @ResponseBody 后,会直接返回 json 数据。@RequestBody 将 HTTP 请求正文插入方法中,
    使用适合的 HttpMessageConverter 将请求体写入某个对象。

    先提一嘴 @RequestMapping(“url”),这里的 url写的是请求路径的一部分,一般作用在 Controller的方法上,作为请求的映射地址。

    @Autowired 注释,
    它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。
    通过 @Autowired的使用来消除 set ,get方法。

    1. @Controller:一般用于类,表明该bean是一个Controller的bean

    2.@ResponseBody:用于类和方法,用于方法则表明中该方法返回的是json串,用于类则表明类中所有的方法返回的都是json串。

    3.@RestController:相当于@Controller + @ResponseBody

    4.@RequestMapping:映射http请求url到java的方法。它有多个参数选项,一般常用的参数选项有:

    path:url相对地址,第一个字符必须为“/”,一般必填,value参数的别名
    示例:@RequestMapping(path="/mypath")

    method:url请求类型,可以为:enum RequestMethod{GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS, TRACE}中的一个或多个

    示例:@RequestMapping(path="/myPath",method={RequestMethod.GET, RequestMethod.POST})

    consumes:url请求必须的Content-Type类型。

    示例:@RequestMapping(path="/myPath",consumes = {“text/plain”, “application/*”})

    provides:url请求返回的类型

    示例:@RequestMapping(path="/myPath",produces = “application/json; charset=UTF-8”)

    5.@PostMapping:url的post请求,相当于@RequestMapping(method=RequestMethod.POST),但只能用在方法上,不能用在类上,其他参数和RequestMapping用法完全相同。
    在Restful API中代表添加

    6.@GetMapping:同PostMapping。在Restful API中代表查找

    7.@PutMapping:同PostMapping。在Restful API中代表更新

    8.@DeleteMapping:同PostMapping。在Restful API中代表删除

    9.在4、5、6、7、8这几个请求映射注解中path可以有多种使用方法。

    9-1 如果在类上加了@RequestMapping,其他类上加了别的映射注解,那么到该方法的请求地址就是类上的映射注解的path+方法上的映射注解的path

    9-2 形如@GetMapping("/user/{id}") 表示给请求url中的/user/后的片段取了个名为id,这个片段在参数中可以用@PathVariable注解获得到

    9-3 形如@GetMapping("/user/{id:d+}") 表示通过正则表达式来限制URL中请求资源类型,这里表示id只能为数字

    10.@RequestParam:用于方法的参数,表示映射请求参数到java的参数,它有多个参数选项,一般常用的参数选项有:

    name:表示映射请求的参数名,它会从请求的参数中找到和name指定的参数名的参数的值,然后赋给指定方法中的参数。

    示例:public UserDto getUserInfo(@@RequestParam(name=“id”)String idNo)  表示将会从请求的参数中找到key为id的参数并将其值赋给idNo

    required:布尔值,表示请求参数中必须的有该参数

    defaultValue:如果请求参数中没有该参数,那么会给指定的方法的参数一个默认值。

    11.@PathVariable:用于方法的参数,它会从映射指定的url片段到java的参数中,一般常用的参数选项有:

    name:表明要指定哪一个url片段

    required:url片段中是否必须要有该片段

    示例:假如方法头部添加了@GetMapping("/user/{id}"),方法的参数中有一个@PathVariable(name=“id”, required=true)String idNo参数,
    那么表明请求url中必须得有{id}该片段,且会把该片段赋给idNo参数

    二 SpringMVC中自定义异常捕获

    1. @ControllerAdvice:用于类,springMVC会将这个@ControllerAdvice标注的类注册成一个特殊的bean,这个bean主要用来拦截Contorller层抛出的异常。

    13.@ExceptionHandler:用于被@ControllerAdvice标注的类中的方法,这个方法会处理指定的异常,并将异常返回给前端。一般常用的参数选项有:

    Class<? extends Throwable>[] value() default {}:表明要捕获指定的异常类

    14.@ResponseStatus:搭配@ExceptionHandler一起使用,表明抛出的异常状态码和异常原因,一般常用的参数选项有:

    HttpStatus code() default HttpStatus.INTERNAL_SERVER_ERROR:表明要抛出的异常状态码,默认为500

    reason:表明抛出的异常原因

    示例:
    @ControllerAdvice
    public class ExceptionHandlerController {

    @ExceptionHandler(UserException.class)
    @ResponseStatus(code=HttpStatus.INTERNAL_SERVER_ERROR, reason="描写原因")
    @ResponseBody
    public Map<String, Object> handlerUserException(UserException ex){
        Map<String, Object> errMap = new HashMap<>();
        errMap.put("id", ex.getUserId());
        return errMap;
    }
    

    }

  • 相关阅读:
    oracle Blob处理
    开机启动
    获取本机IP
    MSSQL通用分页过程
    转:Delphi2010小写金额转大写金额的源代码
    HWND Handle HModule区别
    常见问题
    Oracle ORA-01033: 错误解决办法
    lvs- lvs(DR模式)+keepalived
    lb-常用的负载均衡软件
  • 原文地址:https://www.cnblogs.com/lengjk/p/13172727.html
Copyright © 2011-2022 走看看