Создание заменяющего контроллера остатка весной с тем же именем вызывает конфликт имен бинов? - PullRequest
0 голосов
/ 11 ноября 2018

Короче говоря, я хочу заменить существующий контроллер при весенней загрузке, потому что он не является удовлетворительным.

Поэтому я создал новый класс контроллера покоя и начал добавлять к нему функциональность. Я хочу сохранить старый контроллер, пока не смогу удалить его в будущем (как только новая версия будет полностью реализована)

Таким образом, у меня фактически два класса с одинаковым именем.

Новый класс

@RestController
@RequestMapping("/api/v2/parts")
public class PartController implements PartsApi {
...

Старый класс

@RepositoryRestController
public class PartController {

При запуске службы возникает следующая ошибка:

Annotation-specified bean name 'partController' for bean class [controller.v2.PartController] conflicts with existing, non-compatible bean definition of same name and class [controller.PartController]

Я пытался использовать аннотацию @Qualifier, но она не компилируется.

Как я могу иметь два класса Rest с одинаковым именем в приложении весенней загрузки?

Примечание: я не хочу переименовывать PartController2

1 Ответ

0 голосов
/ 11 ноября 2018

Однажды я столкнулся с подобной проблемой, и она была решена после передачи явного имени в аннотации @RestController, которая по умолчанию принимает имя класса во время автопроводки. Попробуйте это:

Версия V2:

@RestController("PartControllerV2")
@RequestMapping("/api/v2/parts")
public class PartController implements PartsApi {

Версия V1:

@RepositoryRestController("PartControllerV1")
public class PartController {
...