Spring MVC или Spring Boot [закрыто]

114

Рекомендуете ли вы использовать Spring MVC или Spring-Boot для крупного корпоративного (веб-проекта)?

Spring-Boot с точки зрения конфигурации очень прост по сравнению со Spring MVC.

Интересно, могу ли я использовать Spring-Boot те же преимущества, что и Spring MVC?

Что вы порекомендуете?

Диего
источник
29
Выбор не между MVC и Boot, потому что Boot может использовать MVC (и автоматически настраивать его) . Если вы имеете в виду "Загрузка или без загрузки?" тогда это зависит от того, насколько открыта для инноваций (и связанных с ними рисков) ваша компания. В любом случае, просить рекомендации здесь не по теме .
kryger 06
Благодарю за ваш ответ. Я понял, что Spring boot можно настроить на Spring mvc. Но я не понимаю, использовать ли Spring-Boot или Spring MVC, оба имеют одинаковые характеристики (Spring boot легко настроить). Из вашего опыта, как вы пользуетесь?
Диего
1
Spring boot сэкономит ваше время, чтобы настроить приложение с bean-компонентами по умолчанию, а также управлять зависимостями. Но у spring-boot и spring-mvc разные цели. Если вы хотите использовать spring -boot с spring-mvc, вы можете и вам не нужно ничего настраивать, если вы не хотите переопределить пользовательскую конфигурацию.
Эдду Мелендес
Благодарю за ваш ответ. В моем будущем проекте буду использовать Spring -Boot. Я думаю, что Spring -Boot проще настроить и сэкономить много времени.
Diego
2
И весенняя загрузка не является несовместимой с упаковкой war и внешним контейнером сервлетов, см. 58.2 Упаковка исполняемых файлов jar и war
Николас Лабро

Ответы:

106

Мой личный совет - обязательно использовать Spring Boot по многим причинам.

  1. Во-первых, Boot - это «будущее весны». Это означает, что с Boot вы можете извлечь выгоду из многих обязательств сообщества Spring. Большинство проектов Spring сегодня полностью интегрированы с Boot, даже сообщество начинает разрабатывать множество приложений на основе Boot. Например, для управления и мониторинга. Я могу предложить увидеть Spring Boot Admin

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

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

  4. Это одна из первых платформ, готовых к микросервисам, и, на мой взгляд, лучшая на сегодняшний день! Даже если вы не создаете проект микросервисов с загрузкой, вы можете извлечь выгоду из использования современного подхода, в котором у вас есть автосогласованный jar, который может извлечь выгоду из всех функций, которые я описал выше, или, если вы предпочитаете, вы можете наложить упаковывайте как классическую войну и развертывайте свою войну в любом из контейнеров, которые вы хотите.

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

  6. Инициализатор Spring - это классный инструмент, доступный по этой ссылке: https://start.spring.io/ - это очень крутой инструмент, просто для очень быстрого создания вашего проекта.


Я надеюсь, что это размышление поможет вам решить, какое решение является лучшим.

Валерио Вауди
источник
1
Спасибо за ответ. У меня здесь небольшая путаница. Я хочу использовать Spring 4 в своем проекте, так как мне не придется использовать persistence.xmlфайл конфигурации и многие другие функции. Могу ли я использовать функции Spring 4 в весенних ботинках? Если да, то как это сделать
viper
2
Я был бы склонен согласиться, если вы планируете делать довольно ванильные вещи. Количество попыток загрузки вызывает головную боль, и я кричу на экран, потому что при загрузке слишком умно учитываются мои зависимости, и в конечном итоге приходится делать больше, чтобы выключить, чем включить, используя бесполезный проект. Пара вещей, которые заканчиваются кошмаром, - это попытка работать с LDAP, где требуется кеш db, или настройка нескольких источников данных с загрузкой, попытка создать экземпляры JdbcTemplate и спящего режима без моего ведома и даже запуск базы данных h3 самостоятельно.
Бретт Райан
1
Конфигурация свойств - это тоже то, что я не придумал, как контролировать. В проектах без загрузки я бы создал класс AppConfig, который имеет перегруженную поддержку чтения свойств в моем файле свойств приложений, который я могу использовать в JSP и SpEL, но не могу понять, как сделать то же самое с загрузкой.
Бретт Райан
1
Этот ответ все еще действителен (шесть месяцев спустя). Я изучаю это и до сих пор не понимаю, почему люди все еще используют Spring, если у них есть потрясающая Spring Boot? Я имею в виду, что мне очень нравится Spring Boot, идея интеллектуального программного обеспечения, которое настраивается самостоятельно, очень меня привлекает, но я очень смущен! Опять же, почему люди все еще используют Spring, если у них есть потрясающая Spring Boot?
Ахмад Хаджар
1
@AhmadHajjar, для нового проекта я бы определенно выбрал Spring Boot. В настоящее время это полностью зрелый инструмент. Но имейте в виду, что людям по-прежнему необходимо поддерживать простые проекты Spring, некоторые из них могут быть легко перемещены на Boot, а другие, вероятно, настолько велики, что процесс миграции может стать проблемой.
Xtreme Biker
39

Spring Boot использует Spring MVC! Он просто автоматически настраивается и готов к использованию, когда вы импортируете jar-файл spring-boot-starter-web. Таким образом, вы в основном говорите о том, использовать ли Spring Boot или вручную настраивать приложение Spring ...

Ulises
источник
4
Да _ + 1, Spring boot - это просто инструмент автоконфигурации, Spring mvc - это веб-фреймворк
Plain_Dude_Sleeping_Alone
@Plain_Dude_Sleeping_Alone Я понимаю, что Spring MVC - это фреймворк. Вы говорите, что Spring Boot - это просто инструмент автоконфигурации, может ли его также рассматриваться как фреймворк?
Джесси
@Jesse, оба они могут рассматриваться как инструменты или как фреймворки. Но здесь люди подчеркивают, что весенняя загрузка - это скорее инструмент для веб-фреймворка Spring mvc. Он предоставит готовую конфигурацию, необходимую для Spring mvc, хотя сама добыча находится в форме фреймворка. Наконец, мой английский настолько плох, что может уже обжечь тебе лицо. Хе-хе
Plain_Dude_Sleeping_Alone
24

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

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

  2. Предоставляет множество реализаций по умолчанию, например, если вам нужно отправить электронное письмо, он обеспечивает реализацию по умолчанию JavaMailSender

  3. Интеграция Spring Hibernate и JPA будет довольно простой.

Таких много, что вы можете изучить в зависимости от ваших потребностей.

Ракеш
источник
Большое спасибо за ваше объяснение
Диего
Всегда предпочтительна весенняя загрузка, потому что вам не нужно иметь дело с подробным XML, и они используют архитектуры
микросервисов
10

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

aruiz
источник
8

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

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

Spring MVC - это среда веб-приложений. Хотя вы можете делать все в Spring без Spring Boot, но Spring Boot помогает вам выполнять работу быстрее.

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

Основы Spring Boot можно найти здесь

Sanket
источник
Спасибо за ответ. Это было очень полезно для понимания пружинной загрузки. Меня смущает одна вещь: если мне придется изменить используемую мной версию Spring, как я могу это сделать при загрузке Spring? Я не вижу нигде, где определена весенняя версия.
viper
Не использовали maven в своем проекте? @viper
erginduran
да, я использовал maven. но, используя Spring boot, я не вижу там зависимостей Spring.
viper