Рубрики
Без рубрики

Пружина Против Пружинного Ботинка: Краткий обзор и сравнение

Spring – это основной фреймворк Java, широко используемый при разработке веб-приложений и приложений JEE в целом…. С тегами spring, web dev, java, springboot.

Spring – это основной фреймворк Java, широко используемый при разработке веб-приложений и приложений JEE в целом. Прежде чем мы продолжим, стоит отметить, что Spring – это базовая платформа, тогда как spring boot – это модуль расширения, построенный поверх Spring core. Итак, хотя у обоих есть много общего, вы обнаружите тонкие различия между ними.

Пружина против пружинного ботинка: Краткое Введение

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

Сказав это, также поймите, что Spring может сделать намного больше, но Spring Boot ориентирован конкретно на веб-разработку и микросервисы

Что такое Весна?

Spring обеспечивает общую инфраструктурную поддержку для разработки корпоративных приложений java. Две мощные функции spring включают внедрение зависимостей (DI) и инверсию управления. Он также предоставляет очень надежный конфигурационный механизм для ускорения разработки приложений Java EE.

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

Некоторые из популярных модулей в экосистеме включают Spring ORM, Spring MVC Test, Spring Cloud, Spring Batch, Spring Security и многое другое.

При работе над корпоративным Java-приложением вы можете выбрать один или несколько модулей Spring и запустить свое приложение.

Некоторые из ключевых задач, которые вы можете решить с помощью spring, приведены ниже –

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

Spring постоянно продолжает добавлять новые проекты в общую экосистему. Некоторые из недавних дополнений включают Spring Shell, которая предоставляет готовые jars для создания полнофункционального приложения CLI. Другой пример включает Spring Flow, который основан на JavaScript и позволяет использовать визуальный конструктор HTML5 для простых конвейеров и графиков.

Spring framework широко используется в потоковых приложениях, таких как потоковое телевидение, потоковое аудио, приложения для покупок и многое другое. Многие ведущие организации, такие как Google, Microsoft и Alibaba, регулярно участвуют и поддерживают продвижение spring framework.

Для абсолютных новичков знайте, что вы можете изучить Spring, а также Spring Boot framework, следуя общему набору Spring tutorials и курсов , поскольку большинство руководств содержат введение в Spring, а затем переходят к объяснению Spring Boot.

Что такое Весенний ботинок?

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

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

Основные характеристики пружинного ботинка, как показано ниже –

  • Создавайте полностью функциональные независимые приложения spring
  • Авто включает в себя военные файлы для Tomcat, Jetty и даже Undertow. Вы просто решаете, чего хотите, spring Boot заботится о военных файлах и развертывании
  • Предоставляет предварительно определенные конфигурации для запущенного веб-приложения.
  • Автоматическая настройка модулей из экосистемы Spring, а также многих сторонних библиотек
  • Готовые показатели, проверки работоспособности и другие отчеты.
  • Ручная настройка XML не требуется.

Spring Boot действительно лишает некоторой гибкости предлагаемую им самоуверенную конфигурацию, но именно это экономит все время. Если вы не готовы к этому, вы можете выбрать core/raw Spring и сделать все это самостоятельно.

Управление зависимостями: Пружина против пружинного ботинка

Давайте рассмотрим очень простой пример того, как разработчики могут управлять зависимостями как в Spring, так и в Spring Boot Framework. –

Минимальная зависимость, требуемая в Spring для веб-приложения:


    org.springframework
    spring-web
    5.3.5


    org.springframework
    spring-webmvc
    5.3.5

Минимальная зависимость, требуемая при загрузке Spring для веб-приложения:


    org.springframework.boot
    spring-boot-starter-web
    2.4.4

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

  • spring-boot-starter-thymeleaf – Включает механизм шаблонов
  • spring-boot-starter-web – Создает веб-приложение со встроенным контейнером
  • spring-boot-starter-aop – AOP включен для аспектно-ориентированного программирования в приложениях Spring Boot
  • spring-boot-starter-artemis – обмен сообщениями JMS с Apache Artemis
  • spring-boot-starter-веб-сервисы – Стартовый пакет веб-сервисов
  • функции spring-boot-starter-mail – отправки электронной почты в приложении JEE
  • spring-boot-starter-data-jpa – Включая data JPA с гибернацией

Если вы не используете Spring Boot, то каждая отдельная зависимость из приведенного выше списка в core Spring заставит вас написать много строк конфигурации.

Spring vs Spring Boot: конфигурация зависимостей для обеспечения безопасности

Проверьте приведенный ниже пример настройки безопасности в приложении Spring без загрузки Spring –

@Configuration
@EnableWebSecurity
public class CustomWebSecurityConfigurerAdapter extends WebSecurityConfigurerAdapter {

    @Autowired
    public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
        auth.inMemoryAuthentication()
          .withUser("user1")
            .password(passwordEncoder()
            .encode("user1Pass"))
          .authorities("ROLE_USER");
    }

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests()
          .anyRequest().authenticated()
          .and()
          .httpBasic();
    }

    @Bean
    public PasswordEncoder passwordEncoder() {
        return new BCryptPasswordEncoder();
    }
}

С Spring Boot вам нужно только включить стартовый пакет безопасности – spring-boot-starter-security.

Существует даже инициализатор spring, который помогает вам выбирать приложения в пользовательском интерфейсе и автоматически генерирует зависимости приложений. Посмотрите на изображение ниже –

Вывод

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

Это подводит нас к концу этого сравнения Spring и Spring Boot. Пожалуйста, сообщите нам о своих взглядах на работу с этими фреймворками в комментариях.

Оригинал: “https://dev.to/eduwyre/settling-spring-vs-spring-boot-debate-8ek”