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 для автоматической генерации/обновления бд. Собственно проект получился маленьким по обьему (хотелось бы добавить и попрактиковаться в работе со связывнием двух и более таблиц БД) но по сути он выполняет задачу хранения данных о музыкальных композиция позволяя добавлять/удалять/изменять их.