Что такое Spring Framework?

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

Ответ

Spring Framework — это комплексный фреймворк с открытым исходным кодом для создания корпоративных Java-приложений. Его ядро основано на принципах IoC (Inversion of Control) и DI (Dependency Injection).

Основные модули и концепции:

  1. IoC Container: Управляет жизненным циклом объектов (бинов) и их зависимостями. Контейнер создаёт и связывает объекты вместо программиста.
  2. Aspect-Oriented Programming (AOP): Позволяет выносить сквозную функциональность (логирование, транзакции, безопасность) в отдельные аспекты.
  3. Данные: Упрощённая работа с JDBC, поддержка ORM (Hibernate, JPA), транзакционное управление.
  4. Spring MVC: Фреймворк для построения веб-приложений и REST API.
  5. Безопасность (Spring Security): Мощный и настраиваемый фреймворк для аутентификации и авторизации.

Пример Dependency Injection через конструктор:

@Service // Аннотация, помечающая класс как bean бизнес-логики
public class UserService {
    private final UserRepository userRepository;

    // Spring автоматически внедрит подходящий bean UserRepository
    @Autowired
    public UserService(UserRepository userRepository) {
        this.userRepository = userRepository;
    }
}

Spring Boot — это проект на основе Spring, который радикально упрощает настройку и запуск приложений за счёт автоконфигурации и принципа "convention over configuration".