hello

Menu

【Java笔记01】SpringBoot-web注解

Spring有很多高能的操作,注解是使用其高能操作的重要内容

查看了其annotation包可以看到注解总共有以下这些:(或者查看官方文档)

ControllerAdvice
CookieValue
CrossOrgin
DeleteMapping
ExceptionHandler
GetMapping
InitBinder
Mapping
MatrixVariable
ModelAttribute
package-info
PatchMapping
PathVariable
PostMapping
PutMapping
RequestAttribute
RequestBody
RequestHeader
RequestMapping
RequestParam
RequestPart
ResponseBody
ResponseStatus
RestController
RestControllerAdvice
SessionAttribute
SessionAttributes

一个接口:

ValueConstants

一个枚举变量:

RequestMehod

从最常用的开始看起,最常用的就是RequestMapping了,它的定义是这样的:

下面给出一个例子包含了上述的情况:

这里需要注意的是,如果定义了params,那么这里的参数是一定要传入的,后面提到的RequestParam是可以定义该参数是否是必需的,但如果定义了params = {"gg", "kk"} 但是又在RequestParam里定义gg为不必需,则会产生报错。

如果未分配变量,则会按名字自动分配,比如gg分配给gg,kk分配给kk;但也可以使用RequestParam进行参数分配,比如test2里把gg分配给kk,把kk分配给gg

那如果我只分配一半呢?(跑路

实测分配一半会被打,像这样分配以后,参数里gg和kk分配到的都是kk的值

RequestParam还有个参数是defaultValue,这个是用来给参数传递默认值的,当参数为空时会采用默认值进行传递

gg输出来是空的字符串"",而kk输出的是"helloworld"

而像GetMapping,PutMapping,DeleteMapping,PostMapping,PatchMapping本质上都是RequestMapping,通过查看他们的定义可以知道,他们的定义里就是比RequestMapping的定义多了一个@RequestMapping(method=POST,GET,DELETE,PUT,PATCH)这样的注解,说白了@GetMapping和@RequestMapping(method=RequestMethod.GET)是一模一样的,其他的也是这个道理。

附上GetMapping的定义:

至于这个Mapping是干啥的,就是用来标识某个注解是web映射的类似元注解的东西,如果你不自定义注解的话,那么它基本没什么用。

官网对于RestController的解释是“带有此注解的类被视为控制器”,简单来说,写个controller类都要有它作为注解,如果你不写的话就咩都冇。

 

 


注解定义汇总:

 

待更新...

— 热度:222 ℃
— 于 共写了1808个字
— 文内使用到的标签:

一条回应:“【Java笔记01】SpringBoot-web注解”

发表评论

电子邮件地址不会被公开。 必填项已用*标注