SpringBoot vs Spring MVC

1

Cześć.
Mam kilka pytań odnośnie SpringBoota a Spring MVC.

  1. SpringMVC potrzebuje plików .war, które następnei są odpalane na serwerze np. Tomcat. Z tego co wyczytałem, to Spring Boot nie potrzebuje takiego rozszerzenia i wystarczy mu .jar. Mam rozumieć, że jest to w ten sposób zrobione, aby łatwiej się włączało aplikacje?

2)Wg https://spring.io/guides/gs/convert-jar-to-war/ A popular subject is that many people still wish to generate WAR files to be deployed inside containers. Dlaczego chcą utrudniać sobie życie? Debugowanie, odpalanie SpringBoota z jarow jest chyba prostsze?

  1. Dlaczego SpringMVC nie posiada maina, a SpringBoot posiada? Jaka jest różnica, skoro obydwa są przeznaczone do aplikacji webowych?
0

Wszystko to bzdury i półprawdy.
Spring Boot to zestaw standardowych konfiguracji dla Springa, w tym Spring MVC, nic więcej.
Czy trzeba w Spring MVC budować wara i czy nie da sie tego startować na embedded kontenerze przez maina? Popełniłem lata temu takie coś: https://github.com/Pharisaeus/SpringScaffoldApplication zero Spring boota a jednak dostajesz runnable jara. Magia? Nie, ten kod robi mniej-wiecej to samo co dziś robi Spring Boot.

Zauważ że Spring Boot wystartuje ci to na jakimś embedded tomcacie/jetty, a co jakbyś chciał odpalić aplikacje na WebLogicu czy WebSphere jakimś? Albo czymkolwiek co ma jakąś złożoną konfiguracje?
Spring Boot ma maina, bo startuje sobie z tego maina tomcata który jest dołączony w jarach ze Spring Bootem. Tam nie ma zadnej "magii". Spring boot po prostu przy starcie aplikacji odpala sobie tomcata i startuje na nim twoją aplikacje.

0
Shalom napisał(a):

Wszystko to bzdury i półprawdy.
Spring Boot to zestaw standardowych konfiguracji dla Springa, w tym Spring MVC, nic więcej.
Czy trzeba w Spring MVC budować wara i czy nie da sie tego startować na embedded kontenerze przez maina? Popełniłem lata temu takie coś: https://github.com/Pharisaeus/SpringScaffoldApplication zero Spring boota a jednak dostajesz runnable jara. Magia? Nie, ten kod robi mniej-wiecej to samo co dziś robi Spring Boot.

W takim razie nie jest powiedziane i narzucone, żeby Spring MVC budował wary? Domyślam się, że jest to po prostu najpopularniejsze rozwiązanie, czyli war i brak maina?

Zauważ że Spring Boot wystartuje ci to na jakimś embedded tomcacie/jetty, a co jakbyś chciał odpalić aplikacje na WebLogicu czy WebSphere jakimś? Albo czymkolwiek co ma jakąś złożoną konfiguracje?
Spring Boot ma maina, bo startuje sobie z tego maina tomcata który jest dołączony w jarach ze Spring Bootem. Tam nie ma zadnej "magii". Spring boot po prostu przy starcie aplikacji odpala sobie tomcata i startuje na nim twoją aplikacje.

Wnioskuję, że klasa Main w SB jest potrzebna by zmienić domyślny kontener webowy i nie tylko?

1

W takim razie nie jest powiedziane i narzucone, żeby Spring MVC budował wary? Domyślam się, że jest to po prostu najpopularniejsze rozwiązanie, czyli war i brak maina?

Spring MVC niczego sam nie buduje ;) Niemniej standard webowych aplikacji javowych to przez długi czas był WAR. Main nie miałby tu zupełnie sensu, bo i jaki? Co miałby robić ten main? Webserwer mapuje odpowiednie URLe na odpowiedni Servlet i tyle.

Wnioskuję, że klasa Main w SB jest potrzebna by zmienić domyślny kontener webowy i nie tylko?

Nie ma czegoś takiego jak "domyślny kontener". Main jest tam to po to zeby wystartować aplikacje, a to wymaga uruchomienia jakiegoś serwera web. Spring Boot uruchamia ci zwykle embedded tomcata i na nim odpala twoją javową aplikacje. Boot robi coś podobnego jak w podlinkowanym przeze mnie wyżej kodzie: https://github.com/Pharisaeus/SpringScaffoldApplication/blob/master/src/main/java/scaffold/Runner.java

1 użytkowników online, w tym zalogowanych: 0, gości: 1