Весна MVC або Spring Boot [закрито]


114

Чи рекомендуєте ви для великого фірмового (веб) проекту використовувати Spring MVC або Spring-Boot?

Spring-Boot, з точки зору конфігурації, дуже простий у порівнянні з Spring MVC.

Цікаво, якщо я використовую Spring-Boot може мати однакові переваги Spring MVC?

Що ви порадите?


29
Вибір не між MVC і Boot, оскільки Boot може використовувати MVC (і автоматично налаштувати його) . Якщо ви маєте на увазі "Boot або без завантаження?" то це залежить від того, наскільки відкрита для інновацій (і пов'язаних з цим ризиків) ваша компанія. У будь-якому випадку, прохання про рекомендацію тут не є темою .
kryger

Спасибі за вашу відповідь. Я зрозумів, що весняний завантажувач може бути налаштований на spring mvc. Але я збентежений, чи використовувати Spring-Boot або Spring MVC обидва мають однакові характеристики (Spring boot легко налаштувати). З вашого досвіду, як ви використовуєте?
Дієго

1
Весняне завантаження економить ваш час для налаштування програми, має за замовчуванням і керувати залежностями. Але, spring-boot та spring-mvc мають різні цілі. Якщо ви хочете використовувати Spring-boot з spring-mvc, ви можете, і вам не потрібно нічого налаштовувати, якщо ви не хочете змінити користувацьку конфігурацію.
Eddú Meléndez

Спасибі за вашу відповідь. Для мого майбутнього проекту використовуватиму Spring -Boot. Я думаю, що Spring -Boot простіше налаштувати і заощадити багато часу.
Дієго

2
А весняний черевик не сумісний із військовою упаковкою та зовнішнім контейнером сервлетів, див. 58.2 Упаковка виконуваних банок та файлів війни
Nicolas Labrot

Відповіді:


106

Моя особиста порада - обов'язково використовувати Spring Boot з багатьох причин.

  1. Перша полягає в тому, що Boot - це «майбутнє Весни». Це означає, що за допомогою Boot ви можете скористатися багатьма зобов’язаннями спільноти Spring. Більшість проектів Spring сьогодні повністю інтегровані з Boot, навіть громада починає розробляти багато додатків на основі Boot. Наприклад для управління та моніторингу. Я можу запропонувати побачити адміністратора Spring Boot

  2. Завдяки Spring Boot ви можете скористатися дуже приємними та корисними функціями, такими як привід та віддалена оболонка для управління та моніторингу, що покращує ваше застосування за допомогою функцій, готових до виробництва, які дуже корисні.

  3. Дуже приємні та потужні властивості та елементи керування конфігурацією - ви можете налаштувати додаток application.properties/yml і розширити завантаження дуже простим та вражаючим способом, навіть управління з точки зору переоцінки дуже потужне.

  4. Це одна з перших платформ, готових до мікросервісу, і на мою думку, це сьогодні найкраща! Навіть якщо ви не будуєте проект мікро-сервісу із завантаженням, ви можете скористатись сучасним підходом, у якому є автоматична послідовна баночка, яка може скористатися усіма описаними вище функціями, або якщо ви хочете, ви можете накласти упаковка як класична війна і розгортати свою війну в будь-якому контейнері, який ви хочете.

  5. Використання інтелектуального підходу до конфігурації, який значно скорочує етап запуску та конфігурації вашого проекту. Насправді у вас є набір залежностей від Maven або Gradle, які спрощують управління залежностями. Тоді, використовуючи характеристику автоматичної конфігурації, ви можете скористатися безліччю стандартних конфігурацій, які вводяться через рамку умовної конфігурації навесні 4. автоматична настройка JAR залежності завантаження. Пам'ятайте, що Spring є відкритим кодом, і ви можете побачити код. Також документація на мій погляд хороша.

  6. Весняний ініціалізатор - це класний інструмент, який можна отримати за цим посиланням: https://start.spring.io/ - це дуже класний інструмент для створення вашого проекту дуже швидким способом.


Я сподіваюся, що ця рефлексія допоможе вам вирішити, що є найкращим рішенням.


1
Дякую за відповідь. У мене тут трохи плутанини. Я хочу використовувати Spring 4 у своєму проекті, оскільки мені не доведеться використовувати persistence.xmlконфігураційний файл та багато інших функцій. Чи можу я мати особливості spring 4 у весняному завантаженні? Якщо так, як це зробити
гадюка

2
Я схильний би погодитися, якщо ви плануєте робити досить ванільні речі. Кількість разів, коли я намагався перейти на завантаження, викликає головний біль, і я кричав на екран, тому що завантажувач намагається бути занадто розумним щодо залежностей, які я маю, і в кінцевому підсумку потрібно зробити більше, щоб вимкнути речі, ніж я б увімкнув речі використовуючи проект без завантаження. Кілька речей, які закінчуються кошмарами, намагаються працювати з LDAP там, де потрібен кеш-пам'ять db, або налаштування декількох даних DataSource завантажується, намагаючись створити JdbcTemplate та сплячі екземпляри, не знаючи мене, і навіть запустити базу даних h3 самостійно.
Бретт Райан

1
Конфігурація власності - це теж те, що я не розробив, як контролювати. У проектах без завантаження я створив клас AppConfig, який перевантажив підтримку зчитування властивостей у файлі властивостей моїх додатків, який я можу використовувати в JSP та SpEL, але не можу зрозуміти, як це зробити з завантаженням.
Бретт Райан

1
Чи все-таки ця відповідь справедлива (через півроку) я розглядаю це, і я все ще не розумію, чому люди все-таки використовують Spring, коли у них є дивовижний весняний черевик? Я маю на увазі, що мені дуже подобається Spring Boot, ідея інтелектуального програмного забезпечення, яке налаштовує себе, для мене дуже приголомшливо, але я дуже заплутана! знову ж таки, чому б люди все ще користувалися Весною, коли у них є дивовижна весняна черевик?
Ахмад Хаджар

1
@AhmadHajjar, для нового проекту я б однозначно пішов з Spring Boot. В даний час це повністю зрілий інструмент. Але майте на увазі, що людям потрібно все-таки підтримувати прості весняні проекти, деякі з них можуть прямо рухатись до Boot, а інші, ймовірно, такі великі, що мігруватимуть процес міграції.
Xtreme Biker

39

Spring Boot використовує Spring MVC! Він просто налаштований і готовий до використання, коли ви імпортуєте баночку Spring-boot-starter-web. Таким чином, ви в основному говорите про те, чи варто використовувати Spring Boot або налаштувати Spring Application вручну ...


4
Так _ + 1, Весняний завантажувач - це лише інструмент автоматичної
настройки

@Plain_Dude_Sleeping_Alone Я розумію, що Spring MVC є рамкою. Ви кажете, що весняний завантажувач - це лише інструмент автоконфігурування, чи його також можна розглядати як рамку?
Джессі

@ Jesse, і обидва вони можуть розглядатися як інструменти або рамки. Але те, що люди тут співпереживають, - це те, що весняне завантаження - це скоріше інструмент для веб-бази Spring mvc. Це забезпечить готову конфігурацію, необхідну для Spring mvc, однак сама здобич має форму рамки. Нарешті, моя англійська настільки погана, що може вже спалити ваше обличчя. Хехе
Plain_Dude_Sleeping_Alone

24

Ви точно можете піти на весняний черевик. Ми вже почали використовувати Spring Boot для побудови корпоративних додатків. Має багато переваг, перелічивши тут декілька:

  1. Конфігурація вашого проекту буде досить простою. Не потрібно підтримувати XML-файл, все, що вам потрібно знати, - наскільки ефективно ви можете використовувати файл application.properties .

  2. Дає багато впровадження за замовчуванням, наприклад, якщо вам потрібно надіслати електронний лист, воно забезпечує реалізацію за замовчуванням JavaMailSender

  3. Весняна сплячка та інтеграція у СПП будуть досить простими.

Оскільки цього існує багато, ви можете вивчити, виходячи з ваших потреб.


Дуже дякую за ваше пояснення
Дієго

Весняний черевик завжди бажаний, тому що вам не доведеться мати справу з багатослівною XML, і вони використовують архітектури мікро-служб
JorgeTovar

10

Ви можете використовувати Spring MVC з весняним завантаженням, як сказав @kryger, вони не є ексклюзивними між ними, і конфігурація буде простішою, також я рекомендую вам використовувати http://www.thymeleaf.org/, що є шаблоною. Робота з цим подібна до роботи з JSP, але чебрець легко інтегрується з HTML, тому ваш код буде виглядати дуже чисто і ви можете додати багато корисних функцій.


8

Я думаю, що Spring Boot є більш корисним, ніж MVC, оскільки він має багато переваг та вбудованих функцій, які роблять його більш надійним, ніж MVC. У Spring Boot більшість речей налаштована автоматично і немає необхідності писати ті xml, як ми робимо в MVC, що може економити час.

Spring Boot поєднує файл війни з часом роботи сервера, як Tomcat. Це дозволяє легко розповсюджувати та розгортати веб-додатки. Оскільки галузь рухається до розгортання контейнерів, Spring Boot є корисним і в цьому контексті.

Spring MVC - це система веб-додатків. Хоча ви можете зробити все навесні без весняного завантаження, але Spring Boot допомагає зробити все швидше.

Весняне завантаження спрощує ваші залежності Spring, не виникає більше зіткнень версій, можна запускати прямо з командного рядка без контейнера додатків, створювати більше з меншим кодом - не потрібно XML, навіть не web.xml, автоматична конфігурація, корисні інструменти для запуску у виробництві, ініціалізація бази даних, конфігураційні файли для оточення, збирання метрик.

Основи весняного черевика можна знайти тут


Дякую за відповідь. Це було дуже корисно для розуміння весняного черевика. Мене бентежить одне, якщо мені доведеться змінити весняну версію, яку я використовую, як би це зробити з весняним завантаженням? Я не бачу ніде, де визначена весняна версія.
гадюка

Ви не використовували maven у своєму проекті? @viper
erginduran

так, я використовував Maven. але за допомогою весняного завантаження я не бачу залежностей весни там.
гадюка
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.