Основные принципы Spring Framework:
- Inversion of Control (IoC): Управление зависимостями осуществляется фреймворком, а не кодом приложения.
- Dependency Injection (DI): Контейнер Spring внедряет зависимости в объекты, а не объекты их создают или ищут.
- Aspect-Oriented Programming (AOP): Позволяет отделять сквозные задачи (логирование, безопасность) от основной бизнес-логики.
- Abstraction: Предоставляет высокоуровневые абстракции для работы с различными технологиями (например, JDBC, JPA, JMS).
- Convention over Configuration: Предпочитает соглашения явной конфигурации, уменьшая объем настроек.
Основные компоненты Spring Framework:
- Spring Core Container: Ядро фреймворка, включающее модули
spring-core, spring-beans, spring-context, spring-expression. Предоставляет функциональность IoC и DI.
java
- Data Access/Integration: Модули для работы с базами данных и интеграции с другими системами:
spring-jdbc, spring-orm, spring-tx, spring-jms.
java
- Web: Модули для создания веб-приложений:
spring-web, spring-webmvc. Поддерживают MVC-архитектуру.
java
- AOP: Модуль для реализации аспектно-ориентированного программирования (
spring-aop).
- Test: Модуль для написания интеграционных и модульных тестов Spring-приложений (
spring-test).
- Spring Boot: Не является отдельным модулем в классическом смысле, но является ключевым проектом, который упрощает создание автономных, готовых к производству Spring-приложений с минимальной конфигурацией.
| Принцип/Компонент | Назначение |
|---|
| IoC/DI | Управление зависимостями, повышение гибкости и тестируемости. |
| AOP | Реализация сквозной функциональности (логирование, безопасность). |
| Data Access | Упрощение работы с базами данных. |
| Web | Создание веб-приложений (REST, MVC). |
| Spring Boot | Упрощение конфигурации и развертывания. |