Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Spring: componentscan, spring, ioc container

Что делает компонент scan?

Этот вопрос проверяет понимание работы механизма сканирования компонентов (@ComponentScan) в Spring и его роли в автоматической регистрации бинов.

Короткий ответ

Компонент-сканирование (@ComponentScan) находит классы с аннотациями, такими как @Component, @Service, @Repository и @Controller, и регистрирует их как бины в контейнере IoC. Это упрощает процесс создания бинов, устраняя необходимость в их ручной регистрации.

Длинный ответ

Компонент-сканирование (@ComponentScan) — это механизм Spring для автоматического обнаружения и регистрации бинов. Он используется для поиска классов, помеченных стереотипными аннотациями, такими как @Component, @Service, @Repository, @Controller и другими пользовательскими аннотациями. Это избавляет разработчика от необходимости вручную регистрировать каждый бин.

Как работает

  • Включается с помощью аннотации @ComponentScan в конфигурации:

    @Configuration
    @ComponentScan(basePackages = "com.example.app")
    public class AppConfig {}
  • Spring сканирует указанные пакеты и их подкаталоги на наличие классов с соответствующими аннотациями.

Гибкость

  • Можно указать несколько пакетов для сканирования:

    @ComponentScan(basePackages = {"com.example.service", "com.example.repository"})
  • Также можно исключать или включать определенные классы:

    @ComponentScan(
        	basePackages = "com.example.app",
        	excludeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION, classes = Deprecated.class)
    )
  • Пример: Если у вас есть класс:

    @Component
    public class MyComponent {
        	public String sayHello() {
            	return "Hello!";
        	}
    }
  • При сканировании пакета Spring автоматически зарегистрирует этот класс как бин.

Заключение:
Компонент-сканирование — это мощный инструмент для упрощения конфигурации Spring-приложений, который позволяет автоматизировать процесс регистрации бинов.

Уровень

  • Рейтинг:

    2

  • Сложность:

    7

Навыки

  • Spring

    Spring

Ключевые слова

#componentscan

#spring

#ioc container

Подпишись на Java Developer в телеграм