У меня есть один вопрос по поводу конвенции. Все работает хорошо (слава богу), но я не уверен, нужны ли аннотации (@PathVariable и @RequestBody) в моей сигнатуре метода класса AttributeService:
@Autowired
private AttributeRepository attributeRepository;
public Attribute create(@RequestBody Attribute attribute) {
return attributeRepository.save(attribute);
}
Возможно, она будет работать с ними или без них , но имеют ли они какое-либо назначение вне моего контроллера @RestController? Метод контроллера выглядит следующим образом (здесь, конечно, мне нужны эти аннотации):
@PostMapping(consumes = "application/json")
public Attribute create(
@RequestBody Attribute attribute
) {
return attributeService.create(attribute);
}
Я имею в виду, это сбивает меня с толку, если я просматриваю свой класс обслуживания и вижу желтые аннотации, и я ошибаюсь, что я в классе Controller:)
Другой вопрос, это нормально, если они имеют одинаковое имя «создать»? Название метода контроллера на самом деле не имеет значения, потому что он вызывается автоматически, но я спрашиваю о соглашении. Мне легко сделать их с одинаковыми именами, поэтому я знаю, что быстрое совпадение, что create () из контроллера вызывает create () в сервисе (если у меня много таких методов).
Спасибо