Различия между банкой и войной в весеннем ботинке?
Я собираюсь создать свой первый веб-сайт на Java с Spring Framework, используя Spring Boot, и его гораздо проще собрать в jar
, но у меня есть несколько вопросов об этом.
Каковы различия в общем?
В файлах jar
представления находятся под /resources/templates
, но в war
файле это находится в /webapp/WEB-INF/
.
Каковы различия? Могу ли я разместить jar
на онлайн-хосте?
Ответы
Ответ 1
Можно сказать, что Spring Boot создает "толстый JAR", который включает все ваши зависимости модуля/службы и может быть запущен с java -jar <your jar>
. Смотрите "Создание исполняемого JAR с Maven" здесь.
Spring Boot также может предложить создать WAR файл, и в этом случае вы, скорее всего, решите развернуть его в веб-контейнере, таком как Tomcat или Jetty.
Множество подробностей о развертывании Spring Boot здесь.
Ответ 2
Запуск приложения spring-boot
как жира *.jar
Можно создать так называемый fat JAR
который является исполняемым файлом *.jar
со встроенным контейнером приложения (Tomcat
как опция по умолчанию). Существуют плагины с spring-boot
для различных систем сборки. Вот один для maven
: spring-boot-maven-plugin
Чтобы выполнить вид fat
*.jar
вы можете выполнить простую команду:
java -jar *.jar
Или используя цель spring-boot-maven
:
mvn spring-boot:run
Создание spring-boot
приложения как *.war
архив
Другой вариант - отправить ваше приложение в качестве старомодного war
файла. Он может быть развернут в любой контейнер сервлетов. Вот пошаговый справочник:
- Измените
packaging
на war
(говоря о maven pom.xml
) - Наследуйте основной класс приложения
SpringApplicationBuilder configure(SpringApplicationBuilder)
spring-boot
от SpringBootServletInitializer
и переопределите SpringApplicationBuilder configure(SpringApplicationBuilder)
(см. Javadoc) - Удостоверьтесь, что вы задали
scope
spring-boot-starter-tomcat
как provided
Дополнительная информация в документации весной загрузки
Ответ 3
Зависит от вашего развертывания. Если вы планируете развернуть свое приложение на существующий сервер приложений Java EE (например, Tomcat), тогда стандартный подход - выполнить сборку war
.
Когда вы используете подход с использованием толстой банки, ваше приложение будет развернуто во встроенном контейнере приложения, предоставленном весной. Проведите развертывание приложений загрузки Spring для получения дополнительной информации.
Ответ 4
У меня возникла та же проблема, когда я бесплатно развернул проблему с флягой на своем локальном компьютере. Тогда мне пришлось продемонстрировать это на сервере. Вы можете создать файл войны, изменив тег pom.xml
<packaging>jar</packaging>
в
<packaging>war</packaging>
и у вас будет файл войны в вашей цели, который вы можете развернуть на своем сервере (tomcat в моем случае)