Дорожная карта по Spring Framework
🔸Prerequisites
• Java Fundamentals. ООП, коллекции, обработка исключений
• Maven и Gradle. Сборка и управление зависимостями
• XML и Annotations. Форматы конфигурации
• Basic SQL.
• JDBC. Драйверы и соединения
• HTTP и Web Basics. REST, JSON, базовые протоколы
🔸Spring Core
• Inversion of Control. Базовый принцип Spring
• Dependency Injection. Конструктор, сеттер, field injection
• Application Context. Контейнер и управление бинами
• Bean Lifecycle. Инициализация и уничтожение
• Bean Scopes. Singleton, prototype, request, session
• Configuration. XML, Java-config, аннотации
🔸Core Annotations
•
@Component. Базовый компонент
•
@Service. Слой бизнес-логики
•
@Repository. Доступ к данным
•
@Controller. Обработка запросов
•
@Autowired. Внедрение зависимостей
•
@Configuration. Классы конфигурации
•
@Bean. Определение бина
🔸Spring Boot Basics
• Auto-Configuration. Автонастройка на зависимостях
• Spring Boot Starters. Преднастроенные наборы
• Application Properties. properties и YAML
•
@SpringBootApplication. Точка входа
• Embedded Servers. Tomcat, Jetty, Undertow
• Spring Boot CLI. Инструмент командной строки
🔸Spring Web MVC
• DispatcherServlet. Фронт-контроллер
•
@RequestMapping. Маршруты
•
@GetMapping и
@PostMapping. HTTP-хендлеры
•
@RequestParam. Параметры запроса
•
@PathVariable. Параметры пути
• Model and View. Шаблоны MVC
🔸REST APIs
•
@RestController. Контроллер REST
•
@ResponseBody. Тело ответа
• HTTP Status Codes.
• Content Negotiation. Форматы JSON и XML
• Exception Handling.
@ControllerAdvice и обработчики
• CORS. Политика совместного использования
🔸Spring Data JPA
• JPA Entities.
@Entity,
@Table, @Id, аннотации
• Repository Pattern. Интерфейсы доступа к данным
• JpaRepository. CRUD-операции
• Query Methods. Методы-запросы по имени
•
@Query Annotation. JPQL и нативные запросы
• Relationships.
@OneToMany,
@ManyToOne,
@ManyToMany• Pagination и Sorting. Параметры страниц и сортировки
🔸Spring Security
• Authentication. Проверка пользователя
• Authorization. Контроль доступа по ролям
• Security Configuration. Фильтры и цепочка безопасности
• Password Encoding. Энкодеры паролей
• JWT Tokens. Статлес-аутентификация
• OAuth2. Внешние провайдеры
• Method Security.
@PreAuthorize,
@Secured🔸Aspect-Oriented Programming
• Cross-cutting Concerns. Логирование, безопасность, транзакции
•
@Aspect. Определение аспектов
• Pointcuts. Точки среза
• Advice Types.
@Before,
@After,
@Around• JoinPoints. Места, куда вплетается аспект
🔸Testing
•
@SpringBootTest. Интеграционные тесты
•
@WebMvcTest. Тестирование веб-слоя
•
@DataJpaTest. Тестирование JPA
• MockMvc. Тесты контроллеров без сервера
•
@MockBean. Заглушки в контексте Spring
• TestRestTemplate. Тестирование REST
🔸Spring Actuator
• Health Endpoints. Мониторинг состояния
• Metrics. Метрики приложения
• Custom Endpoints. Пользовательские эндпоинты
• Info Endpoint. Информация о сборке
• Environment Properties. Просмотр конфигурации
🔸Microservices
• Spring Cloud. Набор для микросервисов
• Service Discovery. Eureka и Consul
• API Gateway. Spring Cloud Gateway
• Circuit Breaker. Resilience4j и Hystrix
• Configuration Server. Централизованная конфигурация
• Distributed Tracing. Sleuth и Zipkin
🔸Advanced Topics
• Reactive Programming. Project Reactor
• Spring Native. Компиляция в native-image
• Custom Auto-Configuration. Свои автоконфигурации
• Event-Driven Architecture. Событийная модель
• Caching. Абстракция кэширования
• Profiles. Профили конфигураций
🔸Deployment
• Docker Containerization. Образы и контейнеры
• Kubernetes Deployment. Манифесты и Helm
• Cloud Platforms. AWS, GCP, Azure
• CI/CD Pipelines. Стратегии релизов
• Production Monitoring. APM и наблюдаемость
🔸Best Practices
• Project Structure. Слои и модульность
• Configuration Management. Внешние конфиги
• Error Handling. Глобальные обработчики
• Logging. SLF4J и структурированные логи
• Performance Optimization. Кэш, пул соединений, lazy-loading
• Security Hardening. Настройки для продакшена
👉
Java Portal