2

Я новичок в Spring MVC, и теперь я приступил к учебным пособиям, которые объясняют, как развернуть свой веб-проект как .jar. Моя IDE - это набор инструментов Spring. Я всегда использовал .war + Apache Tomcat.Spring MVC project as jar

Может кто-то немного уточнить с практической точки зрения, почему использовать .jar вместо .war? Любые проблемы, о которых нужно знать?

редактировать: другие ответы тоже приветствуются

ответ

2

Spring Загрузочный использует жир упаковки JAR, где это встраивает Servlet контейнер со всеми зависимостями в этот единый JAR.

Если вы используете Maven, для упаковки проекта используется spring-boot-maven-plugin.

Практическое использование этого подхода прост. Возможность легко запускать приложение Spring Spring на основе Srvlet из командной строки с внешними свойствами. Такая конфигурация позволяет использовать мощные возможности оркестровки, которые часто используются на современных предприятиях в так называемой архитектуре Microservices или SOA.

Существует группа людей (включая меня), которые считают, что развертывание различных WAR-файлов несвязанных приложений в единую рабочую среду Servlet - не очень хорошая идея.

Такие толстые JAR-диски удобны для отдельной работы сервлета при развертывании приложения.

+0

Я получаю 100% -ную функциональность с .jar, как я бы получил с Tomcat + .war? Мне даже нужен Tomcat, если я иду с версией .jar? – Gero

+0

Да, Spring Boot со встроенным Tomcat - это как если бы вы развертывали единую войну на автономном Tomcat. Но если вам нужно настроить Tomcat, вам нужно сделать это с помощью свойств Spring Boot. – luboskrnac

+0

Может ли один хост .jar и Tomcat + .war файлы на одном компьютере? Любой хороший сайт, чтобы прочитать обо всех этих конкретных вещах? – Gero

1

Об использовании .jar и Tomcat + .war на одной машине, это возможно, и я использую это. Это может быть не круто, но у меня было приложение .war, работающее на сервере tomcat до появления весенней загрузки. Теперь мои новые приложения - весенние загрузочные приложения, и мы переносим нашу архитектуру на концепцию SOA, но мы не можем изменить шину с движущейся машиной. Основное приложение, WAR работает на сервере tomcat, а остальные (.jar) являются автономными (встроенный tomcat), каждый из которых работает в другом порту. Это было наиболее жизнеспособное решение, доступное для нас к моменту.

+0

Не могли бы вы немного объяснить, как вы назначили каждый .jar другой порт? – Gero

+0

Проблема с портом настроена в вашем приложении. В моем военном приложении эта конфигурация находится в моем pom.xml. Я использую модуль tomcat7-maven, где вы настраиваете специфику, например порт. В приложении Spring-Boot эта конфигурация о порте выполняется в файле .properties. Строка server.port = 8081. Но, как я уже говорил, это не идеальная архитектура. Вы можете запускать все свои приложения в одном и том же порту на своем сервере, используя докеры (посмотрите!). Я использую разные порты для облегчения разработки и развертывания в производстве, но я намерен скоро перейти на докер. – Digao

Смежные вопросы