Skip to content

Домашние задания в рамках курса по Spring

Notifications You must be signed in to change notification settings

danailKondov/spring_course_02

Repository files navigation

spring_course_02

Домашние задания в рамках курса по Spring

Создать приложение хранящее информацию о книгах в билиотеке

Использовать Spring JDBC и реляционную базу.

Опционально использовать настоящую реляционную БД, но можно использовать H2.

Предусмотреть таблицы авторов, книг и жанров.

Покрыть тестами, насколько это возможно.

решение: см. ветку create_library

Переписать приложение для хранения книг на ORM

Использовать JPA, Hibernate только в качестве JPA-провайдера.

Добавить комментарии к книгам, и высокоуровневые сервисы, оставляющие комментарии к книгам.

Покрыть DAO тестами используя H2 базу данных и соответствующий H2 Hibernate-диалект

решение: см. ветку migrate-to-jpa

Билиотеку на Spring Data JPA

Реализовать весь функционал работы с БД в приложении книг с использованием spring-data-jpa репозиториев.

решение: см. ветку migrate_to_spring_data_repo

Использовать MongoDB и spring-data для хранения информации о книгах

Тесты можно реализовать с помощью spring-boot-starter-embedded-mongodb

решение: см. ветку migrate_to_mongodb

CRUD приложение с Web UI и хранением данных в БД

Создайте приложение с хранением сущностей в БД (можно взять DAOs из прошлых занятий)

Использовать классический View, предусмотреть страницу отображения всех сущностей и создания/редактирования.

View на Thymeleaf, classic Controllers.

решение: см. ветку crud_web_ui

Переписать приложение с использованием AJAX и REST-контроллеров

Переписать приложение с классических View на AJAX архитектуру и REST-контроллеры.

Сделать SPA приложение на любом из Web-фреймворков (React)

решение: см. crud_rest_react

Использовать WebFlux

Вместо классического потока и embedded Web-сервера использован WebFlux.

Для избавления от блокирующих элементов база данных (снова) переведена на MongoDB.

решение: см. migrate_to_web_flux

В CRUD Web-приложение добавить механизм аутентификации

В существующее CRUD-приложение добавлен Spring Security и механизм Form-based аутентификации.

решение: см. add_form_based_auth

Настроить в приложении авторизацию на уровне URL и/или доменных сущностей.

В приложение добавлен кастомный security expression

решение: см. add_custom_security_expression

Разработать процедуру миграции данных из реляционного хранилища в NoSQL

Разработать процедуру миграции данных из реляционного хранилища в NoSQL или наоборот используя Spring Batch.

решение: см. add_spring_batch

Реализовать обработку доменной сущности через каналы Spring Integration

Добавлен сервис генерации случайных комментариев для новых книг, включен с использованием Spring Integration.

решение: см. add_spring_integration

Использовать метрики, healthchecks и logfile к приложению

Добавлен Spring Actuator, метрики, healthchecks, logfile и кастомный HealthCheck.

решение: см. add_spring_actuator

Обернуть приложение в docker-контейнер

Приложение обернуто в docker-контейнер, БД тоже. Настроена связь между ними.

  • Создать из docker/postgresql/ образ БД: $ docker build -t postgre_db .
  • Создать из корня проекта образ приложения: $ docker build -t lib_app .
  • Запускаем БД: $ docker run -d --rm -p 127.0.0.1:5432:5432/tcp postgre_db
  • Запускаем приложение: $ docker run -it --rm --network="host" -p 127.0.0.1:8080:8080/tcp lib_app
  • Все то же самое с docker-compose из корня приложения: $ docker-compose up
  • Остановка: Ctrl+C

решение: см. add_docker

Обернуть внешние вызовы в Hystrix

Внешний вызов обернут в Hystrix (Hystrix Javanica).

Для доступа в dashboard: зайти в http://localhost:8080/hystrix и в поле ввода прописать http://localhost:8080/actuator/hystrix.stream

решение: см. add_hystrix

About

Домашние задания в рамках курса по Spring

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published