可以根据CustomAnnotation的标志省略包含的注释。即:
@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.METHOD, ElementType.TYPE })
@Documented
@ApiImplicitParams({ @ApiImplicitParam(name = "Authorization",
value = "Authorization token",
dataType = "string",
paramType = "header")
})
public @interface OAuth {
@AliasFor("enabled") boolean value() default true;
@AliasFor("value") boolean enabled() default true;
}
启用OAuth时:
@OAuth(true)
public void requireAuthorizationInHeader() {}
将包含ApiImplicitParams
,因为OAuth为true
另一方面,
@OAuth(false)
public void notRequireAuthorizationInHeader() {}
ApiImplicitParams
应该不生效。