Skip to content

Hrothnar/library

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Простой проект для симуляции работы библиотеки. В нём представлено две ветки, которые различаются реализацией задачи.

Общие элементы:

  1. Spring Boot не используется.
  2. Spring Core | Spring Context | Spring Beans | Spring Web | Spring Web MVC | Spring JDBC
  3. База данных - PostgreSQL | IDE - Eclipse | Сборщик - Maven | Шаблонизатор - Thymeleaf | Миграция - Liquibase
  4. Контейнер сервлетов - Tomcat, его запуск и размещение сервлетов происходит посредством IDE.
  • Конфигурация Dispatcher Servlet происходит с помощью Java-конфигурации, вместо web.xml, что предлагает Maven webapp archetype. Конфигурация расширяет класс AbstractAnnotationConfigDispatcherServletInitializer.
  • Дополнительно регестрируется фильтер скрытых полей, необходимый для корректной работы шаблонизатора (добавляет возможность работать не только с GET и POST запросами, поддерживаемыми HTML5) и фильтр для работы с UTF-8.
  • Работа со Spring происходит через аннотирование классов и методов. Spring конфигурация тоже реализована с помошью Java-конфигурации.
  • Реализуется интерфейс WebMvcConfigurer для настройки работы с шаблонизатором, создаются необходимые Beans, а так же определются данные для подключения к базе данных для работы с JDBCTemplate.
  • Валидация данных с HTML форм происходит с помошью javax.validation (предоставляется библиотекой Hibarnate Validator) и Spring Validation.

Ветка "f-1":

  • В качестве работы с базой данных класс BookDAO использует голый JDBC, а класс PeronDAO использует JDBCTemplate.

Ветка "f-2" и "main":

  • Добавлен дополнительный функционал, переделана структура приложения. Для реализации работы с базой данных используется подход ORM.
  • В качестве JPA провайдера задействован фреймворк Hibernate. Транзакции выполняются путём установки аннотации @Transaction, которая позволяет Spring автоматически создавать транзакции, без необходимости ручного управления. Это происходит путём создания прокси-объекта. Для возможности Spring работать с ORM компонентами в зависимости был добавлен модуль Spring ORM.

Запуск приложения:

Ветка "f-1":
Для загрузки таблиц для работы с приложением нужно прописать команду:"mvn liquibase:update",
но предварительно нужно убрать "_db" в поле "username_db" в файле "liquibase.properties".
После создания таблиц "_db" нужно вернуть. Тестовых данных нет.

Ветка "f-2" и "main":
Дополнительных манипуляции проект не требует, достаточно его запустить и автоматически будут подгруженные нужные данные.

About

The light of a candle Is transferred to another candle - Spring twilight

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors