Spring Framework - Обзор
Spring - самая популярная среда разработки приложений для корпоративной Java. Миллионы разработчиков по всему миру используют Spring Framework для создания высокопроизводительного, легко тестируемого и повторно используемого кода.
Spring framework - это платформа Java с открытым исходным кодом. Первоначально он был написан Родом Джонсоном и впервые был выпущен под лицензией Apache 2.0 в июне 2003 года.
Пружина легкая по размеру и прозрачности. Базовая версия Spring framework составляет около 2 МБ.
Основные функции Spring Framework можно использовать при разработке любого приложения Java, но есть расширения для создания веб-приложений на основе платформы Java EE. Фреймворк Spring нацелен на упрощение использования разработки J2EE и способствует продвижению передовых методов программирования путем включения модели программирования на основе POJO.
Преимущества использования Spring Framework
Ниже приводится список некоторых из замечательных преимуществ использования Spring Framework.
Spring позволяет разработчикам разрабатывать приложения корпоративного класса с использованием POJO. Преимущество использования только POJO заключается в том, что вам не нужен контейнерный продукт EJB, такой как сервер приложений, но у вас есть возможность использовать только надежный контейнер сервлетов, такой как Tomcat или какой-либо коммерческий продукт.
Весна организована по модульному принципу. Несмотря на то, что количество пакетов и классов является значительным, вам нужно беспокоиться только о тех, которые вам нужны, и игнорировать остальные.
Spring не изобретает велосипед, вместо этого он действительно использует некоторые из существующих технологий, такие как несколько фреймворков ORM, фреймворки журналирования, таймеры JEE, Quartz и JDK и другие технологии просмотра.
Тестировать приложение, написанное с помощью Spring, просто, потому что код, зависящий от среды, перемещен в эту структуру. Кроме того, с помощью POJO JavaBeanstyle становится проще использовать внедрение зависимостей для внедрения тестовых данных.
Веб-фреймворк Spring - это хорошо спроектированный веб-фреймворк MVC, который обеспечивает отличную альтернативу таким веб-фреймворкам, как Struts или другим излишне спроектированным или менее популярным веб-фреймворкам.
Spring предоставляет удобный API для преобразования исключений, связанных с конкретной технологией (например, созданных JDBC, Hibernate или JDO) в согласованные, непроверенные исключения.
Легкие контейнеры IoC имеют тенденцию быть легкими, особенно по сравнению, например, с контейнерами EJB. Это полезно для разработки и развертывания приложений на компьютерах с ограниченными ресурсами памяти и ЦП.
Spring предоставляет согласованный интерфейс управления транзакциями, который может масштабироваться до локальной транзакции (например, с использованием одной базы данных) и масштабироваться до глобальных транзакций (например, с использованием JTA).
Внедрение зависимостей (DI)
Технология, с которой больше всего ассоциируется Spring, - это Dependency Injection (DI)аромат инверсии контроля. ВInversion of Control (IoC)это общее понятие, и его можно выразить по-разному. Инъекция зависимостей - это лишь один конкретный пример инверсии управления.
При написании сложного приложения Java классы приложения должны быть как можно более независимыми от других классов Java, чтобы увеличить возможность повторного использования этих классов и их тестирования независимо от других классов во время модульного тестирования. Инъекция зависимостей помогает склеить эти классы вместе и в то же время сохранить их независимость.
Что такое внедрение зависимостей? Давайте посмотрим на эти два слова по отдельности. Здесь часть зависимости переводится в ассоциацию между двумя классами. Например, класс A зависит от класса B. Теперь давайте посмотрим на вторую часть, инъекцию. Все это означает, что класс B будет введен IoC в класс A.
Внедрение зависимостей может происходить путем передачи параметров конструктору или путем постконструирования с использованием методов установки. Поскольку внедрение зависимостей является сердцем Spring Framework, мы объясним эту концепцию в отдельной главе с соответствующим примером.
Аспектно-ориентированное программирование (АОП)
Одним из ключевых компонентов Spring является Aspect Oriented Programming (AOP)фреймворк. Функции, охватывающие несколько точек приложения, называютсяcross-cutting concernsи эти сквозные проблемы концептуально отделены от бизнес-логики приложения. Существуют различные общие хорошие примеры аспектов, включая ведение журнала, декларативные транзакции, безопасность, кеширование и т. Д.
Ключевой единицей модульности в ООП является класс, тогда как в АОП единицей модульности является аспект. DI помогает отделить объекты приложения друг от друга, в то время как AOP помогает отделить сквозные проблемы от объектов, на которые они влияют.
Модуль AOP Spring Framework предоставляет реализацию аспектно-ориентированного программирования, позволяющую определять методы-перехватчики и pointcuts для четкого разделения кода, реализующего функции, которые должны быть разделены. Мы обсудим больше о концепциях Spring AOP в отдельной главе.