以前版本的Srping使用 @RequestMapping注解方法,现在也可以使用 @GetMapping 这个具体化请求方法的映射了,应该说是更直接,更简化注解的使用。
一、@RequestMapping 注解可以在控制器类的级别和/或其中的方法的级别上使用。
@RequestMapping 在类的级别上的注解会将一个特定请求或者请求模式映射到一个控制器之上。之后还可以另外添加方法级别的注解来进一步指定到处理方法的映射关系。
当然,使用@GetMapping 在方法上进一步做映射关系也正确。
看看@GetMapping的源码:
/**
* Annotation for mapping HTTP {@code GET} requests onto specific handler
* methods.
*
* <p>Specifically, {@code @GetMapping} is a <em>composed annotation</em> that
* acts as a shortcut for {@code @RequestMapping(method = RequestMethod.GET)}.
*
* @author Sam Brannen
* @since 4.3
* @see PostMapping
* @see PutMapping
* @see DeleteMapping
* @see PatchMapping
* @see RequestMapping
*/
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@RequestMapping(method = RequestMethod.GET)
public @interface GetMapping {
...
}
因为注解了@Target(ElementType.METHOD) ,GetMapping只能作用于方法的级别上。
@Target 说明了Annotation 所修饰的 对象范围:
Annotation可被用于packages、types(类、接口、枚举、Annotation类型)、类型成员(方法、构造方法、成员变量、枚举值)、方法参数和本地变量(如循环变量、catch参数)。
在Annotation类型的声明中使用了target可更加明晰其修饰的目标。
用于描述注解的使用范围,即:被描述的注解可以用在什么地方。
取值(Element Type)有:
1.CONSTRUCTOR:用于描述构造器
2.FIELD:用于描述域
3.LOCAL_VARIABLE:用于描述局部变量
4.METHOD:用于描述方法
5.PACKAGE:用于描述包
6.PARAMETER:用于描述参数
7.TYPE:用于描述类、接口(包括注解类型) 或enum声明
二、通过指定HTTP 请求头方法来注解的还有:
@GetMapping
@PostMapping
@PutMapping
@DeleteMapping
@PatchMapping
三、例子:
@RestController
@JsonInclude
@RequestMapping("/api/v1.0/")
@Api(value = "SeasonController")
public class SeasonController {
// 自动装配服务层接口类
@Autowired
private ISeasonService seasonService;
// 传入数据持久层的对象数据模型定义,以这个模型查询数据。
@ApiOperation(value = "findListToDropdown",notes="查找季节下拉列表数据。")
@GetMapping("seasonOverview")
public ResponseVO<SeasonDataVO> findListToDropdown(){
ResponseVO<SeasonDataVO> objectResponseVO = new ResponseVO<>();
// objectResponseVO.setCurrentSeason(season.findAll());
objectResponseVO.setData(seasonService.findAll());
objectResponseVO.setMessage("Success");
objectResponseVO.setSuccess(true);
objectResponseVO.setError("null");
return objectResponseVO;
}
}
本文探讨了Spring MVC中@RequestMapping和@GetMapping的使用。@RequestMapping在类级和方法级用于请求映射,而@GetMapping是更具体的HTTP GET请求映射。源码分析显示@GetMapping仅适用于方法级别。此外,文章还提到了其他HTTP请求方法的注解。
680

被折叠的 条评论
为什么被折叠?



