Различия между jar и war в Spring Boot?

Я собираюсь создать свой первый веб-сайт на Java с Spring Framework с помощью Spring Boot, и его намного проще построить в jar, но у меня есть несколько вопросов об этом.

каковы различия в целом?

на jar файлы взгляды под /resources/templates, но в war файл под /webapp/WEB-INF/.

в чем разница? Могу ли я развернуть jar на онлайн-хост?

3 ответов


Spring Boot можно сказать, чтобы создать "жирную банку", которая включает в себя все зависимости вашего модуля/службы и может быть запущена с java -jar <your jar>. См. раздел "Создание исполняемой банки с Maven" здесь.

Spring Boot также можно сказать создать файл войны, в этом случае вы, вероятно, решите развернуть его в веб-контейнер, такой как Tomcat или Jetty.

подробнее о развертывании Spring Boot здесь.


под управлением spring-boot применение как жир *.jar

можно построить так называемый fat JAR это исполняемый файл *.jar файл со встроенным контейнером приложений (Tomcat по умолчанию). Есть spring-boot плагины для различных систем. Вот один для maven: spring-boot-maven-плагин

выполнить вид fat *.jar вы можете просто запустить команду:

java -jar *.jar

или через spring-boot-maven гол:

mvn spring-boot:run

здание spring-boot приложение а *.war архиве

другой вариант-отправить ваше приложение как старомодное . Он может быть развернут в любом контейнере сервлетов. Вот шаг за шагом how-to list:

  1. изменить packaging to war (говорю о Maven в pom.xml)
  2. наследовать main spring-boot класс приложение SpringBootServletInitializer и переопределить SpringApplicationBuilder configure(SpringApplicationBuilder) метод (см. javadoc)
  3. обязательно установите scope of spring-boot-starter-tomcat as provided

дополнительная информация в документации spring-boot


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

при использовании подхода fat jar приложение будет развернуто во встроенном контейнере приложений, предоставляемом spring boot. Поведение Развертывание Приложений Spring Boot для получения дополнительной информации.