СоХабр закрыт.

С 13.05.2019 изменения постов больше не отслеживаются, и новые посты не сохраняются.

| сохранено

H Почему фреймворк Spring настолько популярен? в черновиках Перевод

Привет, друзья! Мы продолжаем серию публикаций посвященных запуску курса «Разработчик на Spring Framework».

Не понимаете, почему Spring пользуется такой популярностью среди разработчиков Java? Прочитайте этот материал, чтобы узнать!

Особенности Фреймворка Spring

Spring — легкий, но мощный фреймворк для разработки приложений. В более широком смысле, Spring — хорошо проработанный инструмент, который поддерживает несколько веб-приложений, использующих Java в качестве языка программирования.
До появления этого фреймворка, приложения разрабатывались с помощью стандартов JEE. С ними можно развертывать приложения на любом сервере приложений JEE. Но было и несколько проблем, включая:
  • Код становился все сложнее по мере развития приложения;
  • Производительность системы страдала от тяжести приложений;
  • Проблема поиска компонента.

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

Самый важные особенности Фреймворка Spring

  1. Легкость

    Фреймворк Spring очень легкий с точки зрения размера и функциональности. Все благодаря его реализации POJO, которая не требует наследования каких-либо классов или реализации каких-либо интерфейсов.
  2. Аспектно-Ориентированное Программирование (АОП)

    Важная часть Spring. Аспектно-Ориентированное Программирование используется для отделения сквозной функциональности (например, логирования, безопасности, и тд) от бизнес-логики. В будущих статьях вы узнаете об этом более подробно.
  3. Управление Транзакциями

    Используется для объединения нескольких API, управляющими транзакциями, и координации транзакций объектов Java. Кроме того, оно не связано со средой J2EE и используется с бесконтейнерными средами.
  4. Контейнер

    Spring проектирует и управляет жизненным циклом и настройками объектов приложения.
  5. Внедрение Зависимостей

    Эта фича позволяет разрабатывать слабо связанные приложения. Таким образом, стало гораздо проще проводить их модульное тестирование. Это также позволяет разработчику по необходимости менять модули.
  6. Интеграция с Другими Фреймворками

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

Особенности Spring 5.0

Конечно, со времен первого представления Spring Родом Джонсоном (Rod Johnson) в 2003 году, фреймворк был значительно улучшен. С тех пор было выпущено несколько версий. На текущий момент, на рынке актуальны версии Spring 5.0x. Поэтому перейдем к главным обновленным фичам и улучшениям Spring 5.0 с Java 8, в качестве минимального требования ко всем кодовым базам, и совместимостью с JDK 9 во время выполнения, а также для пакетов сборки и тестирования:

  • JDK 8 Plus 9 и Java EE 7 Baseline

Кодовая база Spring основана на уровне кода Java 8. Он обеспечивает читаемость (благодаря наследованию обобщенных типов), а условная поддержка Java 8 предоставляется непосредственно из кода. В Spring модулях необходим уровень Java EE 7 API вместе с Servlet 3.1, JMS 2.0, JPA 2.1 и Bean validation 1.1. В Spring 5.0 были добавлены недавние серверы, например, Jetty 9.3+, Tomcat 8.5+ и WildFly 10+. Совместимость с JDK 9 была добавлена во время выполнения, а также для пакетов тестирования и сборки.

  • Удаление Классов, Методов и Пакетов

Пакет mock.staticmock был удален из модуля Spring вместе с поддержкой AnnotationDrivenStaticEntityMockingControl. Минимальное требование — Tiles 3 и Hibernate 5, а значит пакеты web.view.tiles2 и form.hibernate3/orm.hibernate4 удаляются. Spring 5.0 также отказался от поддержки Portlet, Velocity, XMLBeans, Guava, JDO и JasperReports. Поэтому тем, кто работает с ними, рекомендуется использовать Spring 4.3.x. Многие устаревшие методы и классы были удалены с некоторыми компромиссами для часто используемых методов в экосистеме Spring.

  • Улучшение Контейнера Ядра

    В Spring 5.0 контейнер ядра был значительно обновлен:

    • Улучшение JDK+
      • Некоторые объявления Java 8 методов в основных интерфейсах Spring;
      • Использование Стандартных Кодировок из JDK7;
      • Эффективный доступ к параметрам и методам с помощью Java 8

    • Подготовка к JDK 9
      • Использование пересмотренной согласованности обработки исключений инициализации для конструктора

    • Улучшения, связанные с XML
      • Упрощение пространства имен XML для неверсионных схем;
      • Отсутствие поддержки устаревших функций и разрешение последних XSD файлов;
      • Определенные для версии объявления все еще поддерживаются, но подтверждаются.


  • Реактивная Модель Программирования

В последней версии Spring есть несколько изменений касательно модели Реактивного Программирования. Одно из них — использование буфера данных ядра Spring, а также абстракций кодера/декодера и реализации spring-web HTTP кодека сообщений с поддержкой XML и JSON. Кроме того, новый WebClient и модуль Spring Web Reactive предоставляют реактивную поддержку модуля @Controller, адаптируя Servlet3.1 и не-Servlet runtime-контейнеры, например Undertow.

  • Общие Улучшения Сети

Обобщенная поддержка разрешения медиа типов с помощью MediaTypeFactory. Кроме того, предоставляется полная поддержка Servel 3.1 вместе с поддержкой Protobuf 3.0 в версии 5.

  • Улучшение Тестирования

    Тестовая среда Spring была значительно улучшена.
    • Полная поддержка программирования Junit 5’s Jupiter в фреймворке SpringTestContext
      • SpringExtension — реализация нескольких API расширений от Jupiter, предоставляющая полную поддержку существующей фичи фреймворка TestContext, которая позволяет использовать @ExtendWith — SpringExtention класс.
      • @SpringJUintConfig, соединяющий @ExtendedWith Jupiter с @ContextConfigurationfrom (фреймворка TestContext);
      • @SpringJunitWebConfig — аннотация, объединяющая @ExtendedWith Jupiter c @ContextConfiguration и @WebAppConfiguration TestContext фреймворка.

    • Новые колбек-методы для тестирования выполнения представлены в TestContext фреймворке с помощью TestNG и JUnit 5 через SpringRunner.
    • Поддержка XMLUnit улучшена до версии 2.2


    Вывод

    Из этого обзора фреймворка Spring вы узнали о разных особенностях его функционала. Кроме того, к последним фичам Spring 5.x по сравнении с версией Spring 4.3.x добавились улучшения тестовой среды, веб-сервера и кода, связанного с XML. Если же у вас еще остались сомнения, пишите о них в комментариях ниже, а лучше записывайтесь на открытый вебинар, который уже завтра проведет кандидат физико-математических наук — Юрий Дворжецкий.

комментарии (2)

+2
aol-nnov ,  
Из этого обзора фреймворка Spring вы узнали

Не узнали, к сожалению… а перевод кривой и рекламы в разделе "выводы" в оригинале нет. :)

0
shapovalex ,  
Перевод не просто кривой — его невозможно читать. Видно, что тот кто переводил совершенно не понимает предметную область и не работал со спрингом.