Какой компонент является центральным (базовым) в Spring Framework?

«Какой компонент является центральным (базовым) в Spring Framework?» — вопрос из категории Spring, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Базовым компонентом Spring Framework является IoC-контейнер (Inversion of Control Container), который реализует принцип инверсии управления. Его основная реализация — интерфейс ApplicationContext, расширяющий базовый BeanFactory.

ApplicationContext отвечает за:

  • Создание и управление жизненным циклом объектов (бинов).
  • Внедрение зависимостей (Dependency Injection).
  • Конфигурацию приложения (через XML, аннотации или Java-код).
  • Предоставление расширенных возможностей: AOP, управление транзакциями, интернационализация, обработка событий.

Пример конфигурации и запуска:

@Configuration
@ComponentScan("com.example")
public class AppConfig {
    @Bean
    public MyService myService() {
        return new MyServiceImpl();
    }
}

public class MainApp {
    public static void main(String[] args) {
        // Создание и запуск контекста на основе Java-конфигурации
        ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);
        MyService service = context.getBean(MyService.class);
        service.execute();
    }
}