05 - [Coursera] - Web Development with Java Spring Framework
За это время было изучено:
1. Изучил основы использования hibernate. Собственно это
библиотека для представления данных в JPA спецификации с помощью
ORM. Одним из плюсов Hibernate о котором везде пишут - сокращение
кода, но без достаточной практики мне сложно оценить на сколько
это существенно. Я использовал hibernate в своем проекте только с
целью работы с запросами БД. Кроме это решил задание с курса по
этой теме. Но пока вопросов здесь больше чем ответов.
2. REST архитектура и CRUD. Были изучены основные понятия об REST
и строении RESTfull сервисов. Узанал, что REST это базовые
принципы построения распределенных приложений в сети по принципу
CRUD. CRUD - определил как совокупность HTTP методов
взаимодействия сервера и клиента, а именно POST(create) - вставка
данных в БД, GET (read) - получение данных из БД, PUT (update) -
иземенение/вставка/удаление данных в БД, DELETE - удаление данных
из БД. Основными средаствами REST реализации в JAVA являются
анотации. В JAVA создается класс контроллер и аннотируется c
помощью @RestController которая совмещает аннотации Spring MVC
@Controller и Spring REST @RequestBody - указывает, что результат
возвращается в тело http запроса и его надо пропуститб через
HttpMessageConverter. А также аннтоция @GetMapping для опрделения
цели запроса (сопоставляет параметр аннотации с параметром
запроса). Так как сравнить мне не с чем, его плюсы очевидны -
построение популярных сейчас микросервисов.
3. Был в на скороую руку изучен плагин Flyway предоставляющий
возможности миграции данных БД. Понимание этого плагина пришло
ближе к завершению работы над курсовым проектом и тут для меня
единственным минусом является строгое наименование пути папки
миграции (как я узнал в процессе дебагинга когда flyway не
подтягивался в проект) и строгое наименование самих файлов
инициализации бд и вставки, плагин не подтягивался потому что
из-за мануального создания в имени файла написал одну _ вместо __.
Но плюсы конечно очень порадовали отпала необходимость ручного
прописывания запросов СУБД в терминале.
4. Большая часть времени ушла на реализацию курсового проекта в
проекте реализовывал аудио хранилище. Каркас проекта построил с
помощью Spring Initializer. Реализовал на posgres базу
compositions средсвами hibernate и javax persistance модель
(класс). CompositionController на RESTController для сопостовления
и реализации основных методов CRUD. Были реализованны основные
классы возможных в приложении исключений - ApiErrorResponse,
ApiExeptionHandler и EntityNotFoundExeption. Был внедрен плагин
Flyway для автоматической генерации/обновления бд. Собственно
проект получился маленьким по обьему (хотелось бы добавить и
попрактиковаться в работе со связывнием двух и более таблиц БД) но
по сути он выполняет задачу хранения данных о музыкальных
композиция позволяя добавлять/удалять/изменять их.