Sobes.tech
Назад к вопросам
Junior — Middle
67

Какие аннотации, применяемые к классам, доступны для получения из контекста Spring ApplicationContext?

Компании, где спрашивали
Альфа-БанкАльфа-Банк

Ответ от нейросети

sobes.tech AI

В Spring ApplicationContext можно получить бины, помеченные различными аннотациями, которые указывают, что класс является компонентом для управления Spring. Основные из них:

  • @Component — базовая аннотация для компонентов.
  • @Service — специализированный компонент для сервисного слоя.
  • @Repository — для компонентов доступа к данным.
  • @Controller и @RestController — для веб-контроллеров.

Все эти аннотации являются мета-аннотациями @Component, поэтому Spring регистрирует такие классы как бины.

Из контекста можно получить бины по типу или по имени, а также можно получить все бины, помеченные определённой аннотацией, например:

Map<String, Object> services = applicationContext.getBeansWithAnnotation(Service.class);

Таким образом, доступны для получения из контекста классы с аннотациями, которые делают их Spring-бинами.