在编译时向方法添加注释

时间:2018-03-16 02:06:59

标签: java spring spring-boot annotations

我正在为我的一些实体实现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();
    }

}

所以有什么想法吗?

1 个答案:

答案 0 :(得分:0)

在运行时向Class添加注释。 您可以使用实用程序类AnnotationUtil

你可以做到

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

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