SpringBoot: контроллер расширяет другой, но не обнаружен - PullRequest
0 голосов
/ 04 февраля 2019

Как сказано в заголовке, контроллер унаследован от другого с некоторыми общими функциями, которые могут использовать другие контроллеры.Однако приложение не смогло обнаружить этот контроллер и выдало ошибку 404 для маршрута, в то время как интерфейс Swagger не показывает его.

Это maven проект , который я создал на другом компьютереи клонировали с мерзавцемЭто не проблема, когда я запустил его на этом компьютере.На этом компьютере я попытался удалить унаследованный класс, и это сработало, но я бы не стал так оставлять, поскольку унаследованный контроллер имеет такие функции, как ModelMapper для DTO и @RestController, которые могут использовать другие контроллеры.

ProfileController не отображается в profile пакете:

package com.hanabinoir.portfolio.profile;

public class ProfileController extends BaseController {

    //...
}

Унаследованный BaseController в инфраструктуре пакет:

package com.hanabinoir.portfolio.infrastructure;

@RestController
@CrossOrigin
public class BaseController {

    protected ModelMapper modelMapper = new ModelMapper();
}

Мне нужен ProfileController , показывающий корректно при наследовании функций от BaseController .Пожалуйста, дайте мне несколько советов, если у меня возникнут проблемы со структурой проекта.Спасибо.

1 Ответ

0 голосов
/ 04 февраля 2019

Нет @Inherited Аннотация в @RestController

https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/bind/annotation/RestController.html

Таким образом, ваш ProfileController не имеет прикрепленных аннотаций

Вы можете определить некоторыепользовательские аннотации и использовать их для своих нужд

@Inherited
@RestController
public @interface InheritedRestController{
}

@InheritedRestController
public class BaseController {

}
...