Инициализация Spring‑контекста и извлечение бина BeanA

Опишите бины через @Configuration/@Bean, создайте AnnotationConfigApplicationContext с этой конфигурацией и запросите BeanA.class. Контекст после использования нужно закрыть.

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

Что ответить на собеседовании

Опишите бины через @Configuration/@Bean, создайте AnnotationConfigApplicationContext с этой конфигурацией и запросите BeanA.class. Контекст после использования нужно закрыть.

Подробный разбор

Ответ с пояснениями

Условие

Создайте Spring‑контекст и получите бин BeanA через метод getBean. Требования:

  1. Запустить Spring‑контекст.
  2. Описать BeanA и его зависимости как Spring‑бины.
  3. Вызвать getBean(BeanA.class) для получения экземпляра.
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class JetbulbInterview {
    public static void main(String[] args) {
        // Запуск Spring-приложения
        
        // getBean(BeanA.class);
    }
}

class BeanA {}

class BeanB {}

class BeanDependencyA {}

class BeanDependencyB {}

Ответ

Опишите бины через @Configuration/@Bean, создайте AnnotationConfigApplicationContext с этой конфигурацией и запросите BeanA.class. Контекст после использования нужно закрыть.

@Configuration
class Config {
    @Bean BeanDependencyA dependencyA() { return new BeanDependencyA(); }
    @Bean BeanDependencyB dependencyB() { return new BeanDependencyB(); }
    @Bean BeanA beanA(BeanDependencyA dependency) { return new BeanA(dependency); }
    @Bean BeanB beanB(BeanDependencyB dependency) { return new BeanB(dependency); }
}
class BeanA {
    private final BeanDependencyA dependency;
    BeanA(BeanDependencyA dependency) { this.dependency = dependency; }
}
class BeanB {
    private final BeanDependencyB dependency;
    BeanB(BeanDependencyB dependency) { this.dependency = dependency; }
}

В main:

try (var context = new AnnotationConfigApplicationContext(Config.class)) {
    BeanA bean = context.getBean(BeanA.class);
}

Связи A→DependencyA и B→DependencyB выбраны явно, поскольку исходные классы пусты. Классы зависимостей остаются из условия, аннотации импортируются из org.springframework.context.annotation.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее