...

Java Spring программист серверной части Backend

О курсе

75 встреч с преподавателем на прямых трансляций по 2 часа 2 раза в неделю.
Первые два занятия БЕСПЛАТНЫ! Переходите в них по списку учебной программы внизу страницы.
Домашние задания после каждого урока, с обратной связью от преподавателя.

Программа обучения построена от основ Java до разработки полноценных enterprise-приложений на Spring Framework.
Вы освоите создание веб-приложений с REST API, работу с базами данных через Hibernate и JPA, обеспечение безопасности с Spring Security, контейнеризацию через Docker и развертывание в Kubernetes.

Вы сможете подтвердить свои навыки сертификатом и начать карьеру в одной из самых высокооплачиваемых IT-специальностей.

Java Spring разработчик создает серверные приложения для банков, интернет-магазинов, финтех-компаний и корпоративных систем. Эти приложения обрабатывают запросы от миллионов пользователей, управляют транзакциями, хранят данные в базах и интегрируются с другими сервисами через REST API и системы очередей.

Если Вы уже приобрели и прошли курс по основам Java и хотели бы зачисляться на этот курс Spring, администратор выдаст Вам промокод, равный стоимости курса основ Java и зачислит Вас на продвинутые занятия по базам данных, JDBC и Spring.

Показать больше

Чему вы научитесь?

  • 1. Основы Java, включая: настройку проекта через переменные JAVA_HOME и PATH, типы данных, математические и логические операторы if else, switch, циклы for, do, while, функции, методы, массивы, объектно ориентированное программирование ООП, классы, абстракции и интерфейс.
  • 2. Базы данных, куда входят знания по: видам БД, типам данных в БД, транзакциям, ER диаграммам, набору требований к транзакционной системе ACID, CAP теореме, нормализации и языку для работы с базами данных SQL. Эти знания важны для получения правильного ответа от приложений и веб сайтов на транзакции-запросы исходящие от пользователя.
  • 3. JDBC Java Database Connectivity - технология для подключения Java-приложений к базам данных, использующая интерфейс Connection для установления соединения, ResultSet для получения результатов запросов, Prepared Statement для защиты от SQL-инъекций и Hikari Connection Pool для предварительного создания соединений. Это позволяет выполнять операции CRUD (Create, Read, Update, Delete) напрямую из Java-кода и работать с любыми реляционными базами данных через единый API.
  • 4. Spring Framework - фреймворк, реализующий механизм инверсии зависимостей (IoC) через внедрение зависимостей Dependency Injection (DI). Контейнер ApplicationContext автоматически создает объекты Bean и связывает их между собой через конструкторы, сеттеры или поля. Использование аннотаций @Component, @Autowired, @Service избавляет от ручного создания объектов через new, что делает код модульным и легко заменяемым для тестирования.
  • 5. Hibernate и JPA - ORM Object-Relational Mapping фреймворк, преобразующий Java-объекты в строки базы данных и обратно. EntityManager управляет сущностями Entity через методы persist, merge, remove, find, переключая их статусы new, managed, detached, removed. Механизм Lazy Loading откладывает загрузку связанных данных до момента обращения к ним, что экономит память. Понимание Persistence Context и уровней изоляции транзакций (@Transactional с Propagation) предотвращает потерю или дублирование данных при одновременной работе нескольких пользователей.
  • 6. Spring Data JPA - надстройка над JPA, генерирующая реализацию репозиториев автоматически. Создание интерфейса с методами findByName, findByAgeGreaterThan или использование аннотации @Query позволяет писать запросы без реализации, Spring сам создает нужный SQL или HQL. Это сокращает объем кода в несколько раз и избавляет от рутинных операций поиска, сортировки и пагинации данных.
  • 7. Spring MVC - фреймворк, реализующий паттерн Model-View-Controller для веб-приложений. Dispatcher Servlet принимает HTTP-запросы от пользователей на выдачу какой-либо информации, HandlerMapping определяет нужный контроллер по аннотации @RequestMapping, а ViewResolver выбирает шаблон для отображения. Передача данных через Model, обработка параметров @RequestParam и @PathVariable, возврат JSON через @ResponseBody - все это позволяет создавать RESTful API и динамические веб-страницы с минимумом кода.
  • 8. Spring Boot - платформа с автоматической конфигурацией, встроенным сервером Tomcat и системой управления зависимостями через Starter-пакеты. Файл application.properties или application.yml централизованно хранит настройки подключения к базе, портов, профилей @Profile для dev/test/prod окружений. Spring Boot DevTools автоматически перезапускает приложение при изменении кода. Это превращает создание готового к запуску приложения в задачу нескольких минут вместо часов настройки XML-конфигураций.
  • 9. Spring Security - фреймворк безопасности с готовыми фильтрами для аутентификации и авторизации. UserDetailsService загружает данные пользователя из базы, PasswordEncoder шифрует пароли через BCrypt или другие Hash-алгоритмы, Security Config определяет правила доступа к URL для определённых групп ролей пользователей. Защита от подделки запросов в базу данных CSRF Cross-Site Request Forgery работает через токены в формах, механизм Persistent Logins запоминает пользователя через cookies. Это обеспечивает защиту приложения от несанкционированного доступа и подделки запросов без написания кода безопасности с нуля.
  • 10. Валидация данных и работа с формами - использование аннотаций @NotNull, @Size, @Email для автоматической проверки данных из веб-форм. BindingResult собирает ошибки валидации, которые передаются обратно пользователю с понятными сообщениями. Multipart form data и аннотация @RequestParam("file") MultipartFile позволяют загружать файлы на сервер, сохранять их в файловую систему или базу данных. Это защищает приложение от некорректных данных и реализует полноценную работу с пользовательским вводом.
  • 11. Docker - система контейнеризации, упаковывающая приложение со всеми зависимостями в изолированный образ. Docker-compose.yml объединяет несколько контейнеров (приложение, база данных и к примеру Redis) в единую систему. Volume обеспечивает сохранность данных между перезапусками контейнеров. Это решает проблему программистов "у меня работает, а у тебя нет" и позволяет одной командой развернуть всю инфраструктуру приложения на любом сервере.
  • 12. REST API - архитектурный стиль для создания веб-сервисов, где ресурсы доступны по URL через стандартные HTTP-методы. @RestController в связке с @GetMapping, @PostMapping, @PutMapping, @DeleteMapping создает endpoints для операций CRUD. Jackson автоматически сериализует Java-объекты в JSON и десериализует JSON обратно в объекты. Использование DTO Data Transfer Object классов отделяет внутреннюю структуру данных от API. Это позволяет фронтенд-приложениям (на веб-фреймворках React, Angular) взаимодействовать с сервером через понятный интерфейс.
  • 13. Redis - база данных типа ключ-значение, хранящая данные в оперативной памяти. Команды SET/GET для простых значений, HSET/HGET для хэш-таблиц, LPUSH/RPOP для очередей выполняются за миллисекунды. Интеграция через Spring Data Redis и аннотацию @Cacheable автоматически кэширует результаты методов. Использование Redis для хранения Spring Session через @EnableRedisHttpSession позволяет масштабировать приложение на несколько серверов, сохраняя единые сессии пользователей.
  • 14. RabbitMQ и Kafka - системы очередей сообщений для асинхронной коммуникации. RabbitMQ с паттернами exchange (direct, topic, fanout) направляет сообщения в нужные очереди. Kafka хранит сообщения в партициях топиков, позволяя обрабатывать миллионы событий в секунду. Это разделяет приложение на независимые сервисы: один отправляет событие "заказ создан", другой асинхронно отправляет email, третий списывает со склада - если один сервис упал, сообщения сохраняются в очереди и обрабатываются позже.
  • 15. Kubernetes - оркестратор контейнеров, управляющий запуском приложений в кластере серверов. Его компоненты: Deployment описывает желаемое состояние приложения (количество реплик, образ, ресурсы), Service создает единую точку входа с балансировкой нагрузки между подами. Автоматическое масштабирование (HPA) добавляет поды при росте нагрузки, самовосстановление перезапускает упавшие контейнеры, rolling update обновляет приложение без простоя, откатывая изменения при ошибках. Это превращает группу серверов в единую платформу, автоматически распределяющую и поддерживающую работу приложений.
  • 16. AOP Aspect-Oriented Programming - технология для выноса сквозной функциональности в отдельные аспекты. Аннотации @Before, @After, @Around и @AfterThrowing позволяют выполнять код до, после или вместо целевых методов без изменения самих методов. Pointcut выражения определяют, к каким методам применяется аспект (например, ко всем методам сервисного слоя). Это позволяет централизованно добавить логирование всех вызовов, замерить время выполнения, обработать исключения или проверить права доступа, не засоряя бизнес-логику техническим кодом.
  • 17. Email, AJAX и Session управление - интеграция дополнительных возможностей в приложение. JavaMailSender с протоколом SMTP и STARTTLS отправляет письма для регистрации, восстановления пароля или уведомлений. AJAX (Asynchronous JavaScript and XML) через fetch API обновляет части страницы без перезагрузки, отправляя CSRF-токен в headers или body запроса. Spring Session JDBC хранит сессии в базе данных вместо памяти сервера, что позволяет пользователю оставаться авторизованным при переключении между серверами или после рестарта приложения.
  • 18. Git позволяет создавать хранилища репозитория, добавляет туда файлы проекта и фиксирует изменения от других разработчиков.

Содержание курса

Основы JAVA (15 уроков)
Основы java для подготовки к автоматизации тестирования программ.

  • 01:30:00
  • Домашнее задание 1. Настройка переменных JAVA_HOME и PATH, редактор кода, метод main.
  • 02:00:00
  • Домашнее задание 2. Математические вычисления
  • 3. Логические операторы IF ELSE, SWITCH. Циклы FOR, WHILE, DO
    02:00:00
  • Домашнее задание 3. Логические операторы
  • 4. Функции и методы
    02:00:00
  • Домашнее задание 4. Функции и методы
  • 5. Лямбда функции. Тернарный оператор. Цикл FOR EACH.
    00:00
  • Домашнее задание 5. Лямбда функции. Тернарный оператор. Цикл FOR EACH.
  • 6. Массивы
    02:00:00
  • Домашнее задание 6. Массивы
  • 7. Объектно ориентированное программирование часть 1
    02:00:00
  • Домашнее задание 7. ООП часть 1.
  • 8. Объектно ориентированное программирование часть 2, абстракция, интерфейс.
    02:00:00
  • Домашнее задание 8. ООП часть 2.
  • 9. Исключения Exception, try catch часть 1.
    00:00
  • Домашнее задание 9. Исключения try catch часть 1.
  • 10. Исключения Exception, try catch часть 2. Input Output Stream (IO).
    00:00
  • Домашнее задание 10. Исключения try catch часть 2. Input Output Stream (IO).
  • 11. Коллекции часть 1. ArrayList, LinkedList, Stack. Очереди Queue, Dequeue. Асимтоматическая сложность. Нотация BIG O.
    00:00
  • Домашнее задание 11. Коллекции часть 1.
  • 12. Обобщения Generics.
    00:00
  • Домашнее задание 12. Обобщения Generics.
  • 13. Коллекции часть 2. HashMap, HashSet. Методы equals и hashcode в рамках коллекций.
    00:00
  • Домашнее задание 13. Коллекции часть 2.
  • 14. Основные алгоритмы сортировки (Bubble, Selection, Insertion, Merge, Quick sort…)
    00:00
  • Домашнее задание 14. Основные алгоритмы сортировки.
  • 15. Stream API
    00:00
  • Домашнее задание 15. Stream API.

Сетевая модель OSI и TCP/IP. Протоколы HTTP и HTTPS. N-звенная архитектура. (1 урок)

Базы данных и SQL (3 урока)
SQL для тестировщиков.

JDBC работа Java в базе данных (4 урока)

Основы HTML CSS (6 уроков)
Краткий курс по освоению языка разметки HTML CSS, для подготовки к автоматизации тестирования программ.

Spring Framework. Разработка приложения на сервере (36 уроков)

Стажировка (10 встреч)

Защита дипломного проекта

Техническое собеседование