我只有几个控制器类,它们都需要标头参数。为了记录大张旗鼓,我正在向所有端点添加此@Parameter
批注:
@Parameter(in = ParameterIn.HEADER, description = "some description", name = "some name", content = @Content(schema = @Schema(allowableValues = {VALUE1, VALUE2, VALUE3, VALUE4})))
@GetMapping
public void method(@RequestHeader .....) {
//some code here
}
问题是我不喜欢在控制器方法中重复相同的注释的想法。是否有一个很好的干净解决方案,在此处具有可重复使用的注释?
因此,部分解决方法是像这样创建我自己的自定义界面:
@Target({PARAMETER, METHOD, FIELD, ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
@Parameter(in = ParameterIn.HEADER, description = "some description", name = "some name", content = @Content(schema = @Schema(allowableValues = {VALUE1, VALUE2, VALUE3, VALUE4})))
public @interface MyCustomAnnotation {
}
这样,我可以重用它并保存一些代码。问题是某些值不同时。例如,如果端点之间的allowableValues不同,则无法重用该端点。我不知道如何将一些参数传递给自定义批注以覆盖默认值...