gpt4 book ai didi

spring - 自定义@RequestMapping注解

转载 作者:行者123 更新时间:2023-12-02 01:34:47 25 4
gpt4 key购买 nike

例如,在我的 spring Controller 中映射到同一路径的方法很少。

    @RequestMapping(value = "/{id}", method = RequestMethod.GET)
protected ResourceDTO getById(@PathVariable int id) {
return super.getById(id);
}

我想知道是否有一种方法可以创建一个自动具有设置值和方法的注释,使其具有如下内容:

    @RequestMappingGetByID
protected ResourceDTO getById(@PathVariable int id) {
return super.getById(id);
}

祝大家有个愉快的一天

更新这样做的目标如下我所有的 Controller (例如用户、订单、客户端)都扩展了一个参数化的 BaseController,它包括一组基本功能(通过 id 获取、保存、更新、删除等)所有逻辑都在 BaseController 上,但为了映射值我必须在特定 Controller 上添加注释。我不想一直写 {id} 和 post 我想用一个已经包含这些值的自定义接口(interface)来注释这些方法

最佳答案

以下适用于我测试的 Spring 4.1.x:

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
@interface RequestMappingGetByID {

}

然后就可以使用了

@RequestMappingGetByID
protected ResourceDTO getById(@PathVariable int id) {
return super.getById(id);
}

就像你提到的那样。

这种注解是Spring调用的元注解。查看this部分文档

我不确定这个元注解是否可以在 4.x 之前的 Spring 版本中工作,但是这绝对是可能的,因为 Spring 在 3.x 行中有一些元注解处理能力


如果您在使用 Groovy 的地方,您还可以利用 @AnnotationCollector AST,这实际上可以避免源代码中的重复,但会推送常规的 @RequestMapping 注释到生成的字节码中。查看this了解更多详情。

在这种情况下的好处是 Spring 不需要配备元注释读取功能,并且该解决方案可能适用于较旧的 Spring 版本

关于spring - 自定义@RequestMapping注解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31878518/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com