Skip to content

Latest commit

 

History

History
79 lines (74 loc) · 6.77 KB

description.md

File metadata and controls

79 lines (74 loc) · 6.77 KB

Разработка полнофункционального Spring/JPA Enterprise приложения c авторизацией и правами доступа на основе ролей с использованием наиболее популярных инструментов и технологий Java: Maven, Spring MVC, Security, JPA(Hibernate), REST(Jackson), Bootstrap (css, js), DataTables, jQuery + plugins, Java 8 Stream and Time API и сохранением в базах данных PostgreSQL и HSQLDB.

  • Основное внимание будет уделяться способам решения многочисленных проблем разработки в Spring/JPA, а также структурному (красивому и надежному) java-кодированию и архитектуре приложения.
  • Каждая итерация проекта закрепляется домашним заданием по реализации схожей функциональности. Следующее занятие начинается с разбора домашних заданий.
  • Большое внимание уделяется тестированию кода: в проекте более 100 JUnit-тестов.
  • Несмотря на относительно небольшой размер, приложение разрабатывается с нуля как большой проект: например, используем кэш 2-го уровня Hibernate, настраиваем Jackson для работы с ленивой загрузкой Hibernate, делаем конвертеры для типов LocalDateTime (Java 8 time API).
  • Разбираются архитектурные паттерны: слои приложения и как правильно разбивать логику по слоям, когда нужно применять Data Transfer Object. То есть на выходе получается не учебный проект, а хорошо масштабируемый шаблон для большого проекта на всех пройденных технологиях.
  • Большое внимание уделяется деталям: популяция базы данных, использование транзакционности, тесты сервисов и REST-контроллеров, настройка EntityManagerFactory, выбор реализации пула коннектов. Особое внимание уделяется работе с базой данных: через Spring JDBC, Spring ORM и Spring Data Jpa.
  • Используются самые востребованные на сегодняшний момент фреймворки: Maven, Spring Security 4 вместе с Spring Security Test, наиболее удобный для работы с базой проекта Spring Data Jpa, библиотека логирования Logback, реализующая SLF4J, повсеместно используемый Bootstrap и jQuery.

План проекта (ссылки на некоторые темы открыты для просмотра)

Архитектура проекта. Персистентность.

  • Системы управления версиями
  • Java 8: Lambda, Stream API
  • Обзор используемых в проекте технологий и инструментов.
  • Инструмент сборки Maven
  • WAR. Веб-контейнер Tomcat. Сервлеты.
  • Логирование.
  • Обзор стандартных библиотек. Apache Commons, Guava
  • Слои приложения. Создание каркаса приложения.
  • Обзор Spring Framework. Spring Context.
  • Тестирование через JUnit.
  • Spring Test
  • Базы данных. PostgreSQL. Обзор NoSQL и Java persistence solution без ORM.
  • Настройка Database в IDEA.
  • Скрипты инициализации базы. Spring Jdbc Template.
  • Spring: инициализация и популирование БД
  • ORM. Hibernate. JPA.
  • Тестирование JPA-сервиса через AssertJ
  • Поддержка HSQLDB
  • Транзакции
  • Профили Maven и Spring
  • Пул коннектов
  • Spring Data JPA
  • Кэш Hibernate

Разработка WEB

Миграция на Spring Boot

  • Основы Spring Boot. Spring Boot maven plugin
  • Lombok, база H2, ApplicationRunner
  • Spring Data REST + HATEOAS
  • Swagger/ OpenAPI 3.0
  • Тестирование и кэширование в Spring Boot
  • Миграция приложения TopJava на Spring Boot