Страницы

Поиск по вопросам

пятница, 13 марта 2020 г.

Как организовать разработку приложения

#java #spring #hibernate #maven #веб_программирование


Здравствуйте!

Подскажите, пожалуйста, как организовать разработку веб-приложения, а именно, как
организовать взаимосвязь между применяемыми технологиями.

Я хочу создать веб-приложение по обмену вещами между пользователями. Приложение пишется
на Java + Spring MVC + Spring Security (для авторизации пользователя) + Hibernate с
использованием сборщика Maven, а в качестве СУБД используется HSQLDB. Для Представления
используется JSP. Сервер приложений - встроенный Jetty, не требующий внешнего веб-контейнера.

Вопросы:


Как сделать так, чтобы проект автоматически собирался и работал на любом ПК с предустановленными
JDK и Maven? Что для этого нужно сделать?
Что сделать, чтобы нужная схема данных автоматически создавалась и заполнялась начальными
данными при первом запуске веб-приложения?
Это должно происходить именно при первом запуске приложения, а не при каждом его
включении.
Расскажите поподробнее про то, как мне организовать доступ к HSQLDB из Hibernate,
учитывая требования (1 и 2) и как хранить/упаковать БД и СУБД исходя из этого.
Требуется также написать скрипт сборки проекта с помощью Maven и показать его исходники
заказчику. Что в данной ситуации будет скриптом сборки? Maven ведь декларативный сборщик.


Спасибо заранее!
    


Ответы

Ответ 1



Для этого достаточно использовать maven в качестве билд-системы. Тогда на любой машине с установленными maven и jdk можно будет выполнить mvn package и получить артефакт (вероятнее всего вы захотите zip-архив) с вашим продуктом. Вам скорее всего понадобятся maven-shade-plugin и/или maven-assembly-plugin. Автоматическое создание схемы можно доверить Hibernate (используя параметр hibernate.hbm2ddl.auto=update), но предпочтительнее делать это SQL-скриптом. Если планируются апдейты приложения и схемы данных, стоит задуматься об использовании средств версионирования схемы БД. Например, Flyway умеет проверять при старте версию схемы в БД последовательно накатывать необходимые миграции (SQL-скрипты, обновляющие схему) на БД и заливать исходные данные из XML. Файл данных БД можно хранить в директории приложения или за её пределами, например, в $HOME/.myapplication/ или в /var в Linux (%APPDATA%/myapplication в случае Windows). Хранение базы данных в отдельной рабочей директории даст ей больше шансов на выживание при удалении и переустановке вашей программы. Мавеновский pom.xml и будет скриптом сборки. Декларативным скриптом. Примерно все это можно получить "из коробки", используя Spring Boot. Просто идете на страницу http://start.spring.io, жмете Switch to the full version? заполняете форму и отмечаете флажками пункты: Web Security JPA HSQLDB и Generate project в конце. На выходе у вас будет архив с готовым скелетом приложения c maven-скриптом как раз под ваши нужды. Нужно будет доработать напильником: заменить Tomcat на Jetty и досыпать в зависимости Flyway, например.

Комментариев нет:

Отправить комментарий