Java - как аннотации интерфейса передают их в реализующий класс - PullRequest
0 голосов
/ 19 марта 2020

Я сгенерировал java классов из файла swagger open api2 .yaml . В интерфейсе я вижу методы с аннотациями, такие как

    @RequestMapping(value = “/retrieve,
        produces = { "*/*" }, 
        method = RequestMethod.POST)
    default ResponseEntity<List<Object>> retrieve(@NotNull @ApiParam(value = "", required = true) @Valid @RequestParam(value = “size”, required = true) Integer size,@ApiParam(value = "" ,required=true )  @Valid @RequestBody String test,@ApiParam(value = "") @Valid @RequestParam(value = “id”, required = false) Integer Id) {
}

. Затем я пытаюсь реализовать класс и использовать метод переопределения генератора Eclipse . Затем в сгенерированном методе я не вижу этих аннотаций.

Когда я отправляю запрос POST , он правильно достигает моего реализованного класса.

Мне было интересно, как мои классы получают эти аннотации?

Мои методы переопределения получат все эти аннотации неявно?

Я запустил javap для реализованного класса, и я также не смог увидеть эти аннотации там.

Связывание этих аннотаций с реализованным классом происходит во время выполнения? Может кто-нибудь указать мне соответствующий документ объясняет это.

Заранее спасибо

...