Выбор ответа Junior Spring Boot и автоконфигурация обновлено
Сервисы не находятся
Вопрос
Класс приложения лежит в com.shop.app, сервисы в com.shop.service. Почему бины сервисов не создаются?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Сканирование идёт с пакета приложения вниз, сосед не входит. @ComponentScan без параметров берёт пакет аннотированного класса и все вложенные. com.shop.service соседний пакет, а не вложенный.
Варианты ответа
- Сервисы должны лежать в одном пакете с контроллерами и классом приложения
- Сканирование идёт с пакета приложения вниз, сосед не входитправильный ответ
- Сервисы нужно пометить
@Beanвместо@Service - Boot не сканирует пакеты, бины регистрируют вручную
Разбор
@ComponentScan без параметров берёт пакет аннотированного класса и все вложенные. com.shop.service соседний пакет, а не вложенный. Решение: перенести класс приложения в com.shop или указать scanBasePackages. @Bean ставят на методы, а не классы.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Предыдущий вопрос
Что внутри @SpringBootApplication
Следующий вопрос
Как Spring Boot настраивает приложение сам