#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, например.
Комментариев нет:
Отправить комментарий