Различия между банкой и войной в весеннем ботинке?

Я собираюсь создать свой первый веб-сайт на 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 файла. Он может быть развернут в любой контейнер сервлетов. Вот пошаговый справочник:

  1. Измените packaging на war (говоря о maven pom.xml)
  2. Наследуйте основной класс приложения SpringApplicationBuilder configure(SpringApplicationBuilder) spring-boot от SpringBootServletInitializer и переопределите SpringApplicationBuilder configure(SpringApplicationBuilder) (см. Javadoc)
  3. Удостоверьтесь, что вы задали scope spring-boot-starter-tomcat как provided

Дополнительная информация в документации весной загрузки

Ответ 3

Зависит от вашего развертывания. Если вы планируете развернуть свое приложение на существующий сервер приложений Java EE (например, Tomcat), тогда стандартный подход - выполнить сборку war.

Когда вы используете подход с использованием толстой банки, ваше приложение будет развернуто во встроенном контейнере приложения, предоставленном весной. Проведите развертывание приложений загрузки Spring для получения дополнительной информации.

Ответ 4

У меня возникла та же проблема, когда я бесплатно развернул проблему с флягой на своем локальном компьютере. Тогда мне пришлось продемонстрировать это на сервере. Вы можете создать файл войны, изменив тег pom.xml

<packaging>jar</packaging>

в

<packaging>war</packaging>

и у вас будет файл войны в вашей цели, который вы можете развернуть на своем сервере (tomcat в моем случае)