Код: Выделить всё
xl.person.controller.PersonControllerКласс PersonController находится внутри модуля external (этот модуль также имеет зависимость) – @RestController аннотации
В моем модуле Application я создаю экземпляры bean-компонентов как таковые и ожидаю, что PersonController из пользовательской зависимости не будет включен . Как видите, компонентComponentScan необходим для других классов, которые я использую из пользовательской зависимости
Код: Выделить всё
@Configuration
@ComponentScan(
basePackages = "xl.person",
excludeFilters={
@ComponentScan.Filter(
type = FilterType.ASSIGNABLE_TYPE,
value = { xl.person.controller.PersonController.class }
)
}
)
public class PersonConfiguration {
@Bean
@Primary
PersonController personController(
PersonService service, //from dependency
PersonSecondService serviceTwo //not from dependency
) {
return new PersonController(service, serviceTwo);
}
}
Код: Выделить всё
@SpringBootApplication(
scanBasePackages = "xl.app"
exclude = { PersonController.class }
)
Обновление
Похоже, триггер @RestController в определении PersonController, которое у меня есть. Таким образом, во внешнем модуле класс уже создан, а затем конфликтует с пользовательской зависимостью. Однако по очевидным причинам я хочу сохранить @RestController в моем классе контроллера.
Кроме того, @ComponentScan в моем классе конфигурации, похоже, игнорируется (следовательно, не работает), потому что @SpringBootApplication(scanBasePackages="xl.app") выполняет первое сканирование, я думаю, и уже выдает ошибку. Однако исключение = { PersonController.class пользовательского класса зависимостей здесь не работает.
Подробнее здесь: https://stackoverflow.com/questions/793 ... dependency
Мобильная версия