Разница между весной MVC и весна загрузки


Я только начал изучать весной. На следующем этапе я хотел бы разработать более крупные веб-приложения. Теперь мне интересно, если я должен начать с Ботинок весны или весна MVC. Я уже читал некоторые вещи, но это немного сбивает с толку, потому что оба выглядят очень похожими. Так в чем же разница между этими двумя?

7 93

7 ответов:

  • Spring MVC - это полная HTTP-ориентированная платформа MVC, управляемая Spring Framework и основанная на Сервлетах. Это было бы эквивалентно JSF в стеке JavaEE. Самые популярные элементы в нем-это классы с аннотацией @Controller, где вы реализуете методы, к которым вы можете получить доступ, используя различные HTTP-запросы. Он имеет эквивалент @RestController для реализации API на основе REST.
  • Spring boot это утилита для быстрой настройки приложений, предлагая из коробки конфигурации для того, чтобы построить Весна привела применения в действие. Как вы знаете, Весна интегрирует широкий выбор различных модулей в ее зонтик, а spring-core,spring-data, spring-web (который включает в себя Spring MVC, кстати) и так далее. С помощью этого инструмента вы можете сказать Spring, сколько из них использовать, и вы получите быструю настройку для них (вы можете изменить ее самостоятельно позже на.)

Итак, Spring MVC-это фреймворк для использования в веб-приложениях, а Spring boot-это Spring based готовые проект инициализатор. Вы можете найти полезным посещение Spring MVC tag wiki а также Spring Boot tag wiki в так.

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

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

Я видел иногда новичков, задающих этот вопрос, потому что в STS (Spring Tool Suite) есть два мастера: один для создания проекта Spring Boot, а другой для создания проекта Spring MVC. Итак, моя рекомендация состояла бы в том, чтобы создать проект Spring Boot и выбрать Web как модуль в этом.

Spring MVC является подпроектом Spring Framework, ориентированным на проектирование и разработку приложений, использующих шаблон MVC (Model-View-Controller). Spring MVC предназначен для полной и полной интеграции с Spring Framework и транзитивно, большинство других подпроектов.

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

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

SpringBoot принимает головную боль конфигурации от разработчика к себе, а не к весне.

неявно SpringBoot основан на концепции Spring framework, такой как bean , controller, services, jpa и т. д.

можно сказать, что SpringBoot-это обертка пружины.

в SpringBoot по умолчанию порт Сервер 8080, но если вы хотите изменить, то перейдите в приложение.свойства и написать

сервер.порт = 8084

с годами весна становится все более и более сложной, как новая функциональные возможности были добавлены. Просто посетите страницу -https://spring.io/projects и мы увидим все весенние проекты, которые мы можем использовать в нашем приложении для различные функциональные возможности. Если кто-то должен начать новый весенний проект мы нужно добавить путь сборки или добавить зависимости maven, настроить приложение сервер, добавьте весеннюю конфигурацию . так много усилий необходимых для начала новый весенний проект, как мы должны в настоящее время все делают с нуля. Ботинок весны решение к эта проблема. Весна загрузки была построена на вершине существующих весна рамки. Используя ботинок весны мы избегаем полностью кода шаблона и конфигурации, которые мы должны были сделать ранее. Весенний ботинок таким образом помогает нам используйте существующие функциональные возможности пружины более надежно и с минимумом усилия.

Особенности весеннего ботинка-

  • Авто-Конфигурации - нет необходимости вручную настраивать сервлет диспетчера, статические сопоставления ресурсов, загрузчик источника свойств, преобразователи сообщения и т. д.
  • Управление Зависимостями - разные варианты обычно используемые библиотеки предварительно выбираются и группируются в разные стартовые помпоны, которые мы можем включить в ваш проект. Выбрав один из них Весенняя версия загрузки мы неявно выбор десятков зависимости, которые нам пришлось бы в противном случае выбирать и согласовывать себя. Пример -
  • Расширенная Внешняя Конфигурация - есть большая список свойств, которые можно настроить приложение.файл свойств, не касаясь Java или XML config.
  • поддержка производства - мы получаем проверку здоровья, метрики приложений и jvm, jmx через http и еще несколько вещей для бесплатный.
  • Runnable Jars - мы можем упаковать приложение в runnable jar со встроенным tomcat включен, поэтому он представляет собой автономная единица развертывания


  • Ссылка -Spring Boot-JavaInUse
    • С помощью spring boot вам не нужно будет создавать конфигурацию. Это будет сделано автоматически при создании проекта.

    • Если вы используете spring MVC, вам нужно построить конфигурацию самостоятельно. Это сложнее, но очень важно.

    вот некоторые основные моменты, которые различают spring и spring boot:

    Весна :

    1. Главная Diffrance является "Testablility".
    2. весна приходит с Ди и МОК. Через который вся тяжелая работа, выполняемая системой, нам не нужно выполнять какую - либо работу(например, обычно мы определяем oblject класса menually, но через Di Мы просто обозначаем их с помощью @Service или @Component-matching class).
    3. Через @Autowired аннотация мы легко издеваемся() над ним во время модульного тестирования.
    4. дублирование и лишний код. В JDBC мы пишем один и тот же код несколько раз, чтобы выполнить любую операцию с базой данных Spring решить эту проблему через Hibernate и ORM.
    5. хорошая интеграция с другими платформами. Например, Hibernate, ORM, Junit & Mockito.

    Spring Boot:

    1. создание быстрого приложения, так что, вместо управления одной большой сети применение Мы разделяем их индивидуально на микросервисы, которые имеют свой собственный объем и возможности.
    2. автоматическая конфигурация с использованием веб-Jar: в обычной весне есть много конфигурации, такой как DispatcherServlat, сканирование компонентов, распознаватель вида, веб-Jar, XMLs. (Пример, если я хотел бы настроить источник данных, Entity Manager Transaction Manager Factory). Настройка автоматически, когда он не доступен с помощью classpath.
    3. приходите с пружинными стартерами по умолчанию, которые поставляются с некоторой зависимостью от конфигурации пружины по умолчанию(например, Spring core, Web-MVC, Jackson, Tomcate, Vaidation, Binding, Loging). Не беспокойтесь о проблеме везионлинга.

    Примечание : он не содержит все точки.