在编译时为方法添加注解

问题描述 投票:0回答:1

我正在为我的一些实体实现 CRUD 操作,我很好奇如何实现注释以向类中的某些方法添加另一个注释。为了澄清我将通过代码来解释它。

@EnableCRUD(base="/tests", get="testGet")
class CrudTestResource{

    public List<String> testGet(String id){
         return new ArrayList();
    }

}

所以我的想法是,当代码编译时,代码应该变成:

@RestController
@RequestMapping("/tests")
class CrudTestResource{

    @GetMapping("/{id}")
    public List<String> testGet(@PathVariable String id){
         return new ArrayList();
    }

}

有什么想法吗?

java spring spring-boot annotations
1个回答
0
投票

在运行时向

Class
添加注释。 您可以使用实用程序类
AnnotationUtil

你可以做

addAnnotation(CrudTestResource.class, createAnnotationFromMap(RestController.class, Collections.emptyMap()));
addAnnotation(CrudTestResource.class, createAnnotationFromMap(RequestMapping.class, Collections.singletonMap("value", "/tests")));

要将注释分组为一个,您可以使用注释聚合。 (可能不稳定)

© www.soinside.com 2019 - 2024. All rights reserved.