Ответ
Spring Framework — это модульная платформа. Вот ключевые компоненты, которые чаще всего используются в enterprise-разработке:
Ядро и основа:
-
Spring Core (IoC Container & Dependency Injection)
- За что отвечает: Управление жизненным циклом объектов (бинов) и внедрение зависимостей.
- Пример:
@Service // Бин, управляемый Spring public class UserService { private final UserRepository repository; // Внедрение через конструктор (рекомендуемый способ) public UserService(UserRepository repository) { this.repository = repository; } }
-
Spring Boot
- За что отвечает: Автоконфигурация и быстрый старт проектов. Основа большинства современных Spring-приложений.
- Пример стартера:
spring-boot-starter-webавтоматически настраивает встроенный сервер (Tomcat) и Spring MVC.
Для веб-разработки:
-
Spring MVC
- За что отвечает: Архитектура Model-View-Controller для создания REST API или веб-приложений.
- Пример контроллера:
@RestController @RequestMapping("/api/users") public class UserController { @GetMapping public ResponseEntity<List<User>> getAllUsers() { // ... } }
-
Spring Data
- За что отвечает: Упрощение доступа к данным (репозитории). Поддерживает JPA, MongoDB, Redis и др.
- Пример репозитория:
public interface UserRepository extends JpaRepository<User, Long> { List<User> findByActiveTrue(); // Spring Data создаст запрос автоматически }
-
Spring Security
- За что отвечает: Аутентификация, авторизация и защита от атак.
- Пример базовой конфигурации:
@Configuration @EnableWebSecurity public class SecurityConfig { @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { http.authorizeHttpRequests(authz -> authz .requestMatchers("/admin/**").hasRole("ADMIN") .anyRequest().authenticated() ); return http.build(); } }
Другие часто используемые модули:
- Spring AOP — для сквозной логики (логирование, транзакции).
- Spring Cache — абстракция для кэширования.
- Spring Batch — для пакетной обработки данных.