Перейти к основному содержимому

org.springframework

· 9 мин. чтения

1. Введение

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

В этой статье представлен общий обзор среды Spring и, в основном, пакета org.springframework , который обеспечивает поддержку внедрения зависимостей, управления транзакциями, веб-приложений, доступа к данным, обмена сообщениями, тестирования и многого другого.

2. Особенности

Spring framework предлагает полный список функций:

  • Веб-приложение Spring MVC и фреймворк веб-сервиса RESTful
  • Аспектно-ориентированное программирование, включая декларативное управление транзакциями Spring.
  • Внедрение зависимости
  • Инверсия контроля

и многое другое.

3. Зависимости Maven

Если вы хотите добавить Spring в свой проект Maven, вы можете найти больше информации об этом здесь .

4. Весенние проекты

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

Начните с малого и используйте только то, что вам нужно — Spring имеет модульную структуру. Давайте посмотрим на некоторые из этих проектов здесь.

4.1. Весенняя сеть MVC

Инфраструктура Web MVC предоставляет архитектуру Model-View-Controller, разработанную на основе DispatcherServlet , который обрабатывает все HTTP-запросы и ответы и делает приложение слабо связанным.

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

Здесь вы можете найти полное руководство .

4.2. Весенняя платформа ввода-вывода

IO Platform определяет набор зависимостей (обе зависимости Spring Framework как сторонние библиотеки), которые могут быть включены в проект Java, чтобы вы могли выбирать необходимые зависимости, не беспокоясь о совместимости между их версиями (поскольку Spring IO гарантирует это).

Платформа ввода-вывода сертифицирована для работы с Java 7 и 8.

Взгляните на проект GitHub .

4.3. Весенний ботинок

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

Приложение, созданное с его помощью, может быть в значительной степени автоматически настроено с некоторыми разумными значениями по умолчанию, а рядом с этим может быть улучшено с помощью показателей (сколько запросов, сколько времени заняли запросы и т. д.).

Он состоит из нескольких (необязательных) модулей:

  1. CLI — интерфейс командной строки, основанный на Groovy, для запуска/остановки приложений, созданных с помощью весенней загрузки.
  2. Boot Core — основа для других модулей.
  3. Auto-configure — модуль для автоматической настройки широкого спектра проектов Spring. Он обнаружит доступность определенных фреймворков (Spring Batch, Spring Data JPA, Hibernate, JDBC).
  4. Actuator — этот проект после добавления активирует определенные корпоративные функции (безопасность, метрики, страницы ошибок по умолчанию) для вашего приложения.
  5. Стартеры — различные проекты быстрого запуска, которые можно включить в качестве зависимости в файл сборки Maven или Gradle. Он будет иметь необходимые зависимости для этого типа приложения. В настоящее время существуют стартовые проекты для веб-проекта (на основе tomcat и причала), существуют Spring Batch, Spring Data JPA, Spring Integration, Spring Security.
  6. Инструменты — в этот проект включен инструмент сборки Maven и Gradle, а также пользовательский загрузчик Spring Boot (используемый в одном исполняемом файле jar/war).

Мы можем найти артефакт Maven здесь и взглянуть на проект GitHub .

4.4. Весенние данные

Миссия Spring Data состоит в том, чтобы предоставить знакомую и согласованную модель программирования на основе Spring для доступа к данным, сохраняя при этом особые черты базового хранилища данных.

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

Это зонтичный проект, который содержит множество подпроектов, специфичных для данной базы данных (например , JPA , MongoDB , Redis , Apache Solr , Gemfire , Apache Cassandra ). Проекты разрабатываются в сотрудничестве со многими компаниями и разработчиками, стоящими за этими интересными технологиями.

4.5. Весенняя безопасность

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

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

Spring Security также интегрирован со многими другими технологиями Spring, включая Spring Web Flow, Spring Web Services и Pivotal tc Server.

Ознакомьтесь с часто задаваемыми вопросами по безопасности Spring, чтобы получить более глубокое представление, и страницей зависимостей Maven . Кроме того, ознакомьтесь с руководствами по безопасности Spring для аутентификации , регистрации и настройки Spring Security с помощью Maven .

4.6. Весенний социальный

Spring Social — это расширение платформы, которое позволяет приложениям подключаться к поставщикам программного обеспечения как услуги, таким как Twitter, Facebook и другим API-интерфейсам на основе аутентификации OAuth . Он предоставляет готовую к использованию платформу аутентификации OAuth для веб-приложений.

Функции:

  • Расширяемая платформа поставщика услуг, которая значительно упрощает процесс подключения учетных записей локальных пользователей к учетным записям размещенного поставщика.
  • Контроллер подключения, который обрабатывает поток авторизации между вашим веб-приложением Java/Spring, поставщиком услуг и вашими пользователями.
  • Привязки Java к API популярных поставщиков услуг, таких как Facebook, Twitter, LinkedIn, TripIt и GitHub.
  • Контроллер входа, который позволяет пользователям проходить аутентификацию в вашем приложении путем входа через поставщика услуг.

Руководства по началу работы:

Spring предоставляет довольно много примеров проектов GitHub , чтобы вы могли быстро начать работу, а ссылка на Spring Social также удобна со страницей быстрого запуска .

4.7. Весенняя оболочка

Spring Shell — это интерактивная оболочка, которую можно легко расширить с помощью команд с использованием модели программирования на основе Spring.

Пользователи проекта оболочки могут легко создать полнофункциональное приложение оболочки ( также известное как командная строка), полагаясь на jar-файл Spring Shell и добавляя свои собственные команды (которые входят в качестве методов в bean-компоненты Spring). Создание приложения командной строки может быть полезно, например , для взаимодействия с REST API вашего проекта или для работы с содержимым локального файла.

Проект GitHub можно найти здесь.

4.8. Спринг Мобайл

Spring Mobile — это расширение фреймворка и Spring Web MVC , цель которого — упростить разработку мобильных веб-приложений.

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

Функции:

  • Абстракция распознавателя устройств для обнаружения мобильных и планшетных устройств на стороне сервера.
  • Управление предпочтениями сайта, которое позволяет пользователю указать, предпочитает ли он или она «обычный», «мобильный» или «планшетный» интерфейс.
  • Переключатель сайтов, способный переключать пользователя на наиболее подходящий сайт, будь то мобильный телефон, планшет или обычный, в зависимости от его или ее устройства и, при необходимости, указывать предпочтения сайта.
  • Управление представлением с учетом устройства для организации и управления различными представлениями для конкретных устройств.

Этот образец приложения поможет вам быстро приступить к работе.

С помощью Spring MVC вы также можете определять устройство , управлять предпочтениями веб -сайта или обслуживать мобильный веб-контент.

4.9. Весенняя партия

Spring Batch — это легкая комплексная платформа, предназначенная для разработки пакетных приложений, необходимых для повседневной работы корпоративных систем.

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

Spring Batch работает, считывая данные с настраиваемым размером блока из источника данных, обрабатывая их и, наконец, записывая в ресурс.

Источником данных для ридера могут быть плоские файлы (текстовый файл, файл XML, файл CSV…), реляционная база данных (MySQL…), MongoDB.

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

Начните быстро, создав пакетную службу и используя другие пакетные ресурсы Spring .

5. Пакеты Core Spring

Здесь давайте взглянем на основные пакеты Spring.

org.springframework.cache — этот пакет поддерживает подпакеты и классы для декларативного управления кешем, настройку кеша с открытым исходным кодом в библиотеке Caffeine , классы поддержки для кеша с открытым исходным кодом EhCache 2.x.

org.springframework.context — этот пакет основан на пакете bean-компонентов, чтобы добавить поддержку источников сообщений и шаблона проектирования Observer, а также возможность для объектов приложения получать ресурсы с использованием согласованного API.

org.springframework.core — предоставляет базовые классы для обработки исключений и определения версий, а также другие основные вспомогательные функции, не относящиеся к какой-либо части платформы.

org.springframework.expression — этот пакет предоставляет основные абстракции языка Spring Expression .

org.springframework.http — этот пакет содержит базовую абстракцию HTTP на стороне клиента/сервера.

  • org.springframework.jdbc — классы в этом пакете упрощают использование JDBC и снижают вероятность распространенных ошибок.

org.springframework.jms — этот пакет содержит классы интеграции для JMS, обеспечивающие доступ к JMS в стиле Spring.

org.springframework.jndi — классы в этом пакете упрощают использование JNDI, упрощая доступ к конфигурации, хранящейся в JNDI, и предоставляют полезные суперклассы для классов доступа JNDI.

org.springframework.orm.hibernate5 — пакет, обеспечивающий интеграцию Hibernate 5.x с концепциями Spring.

org.springframework.test.util — общие служебные классы для использования в модульных и интеграционных тестах.

Этот список ограничен и описывает только основные пакеты для среды Spring. Вы можете найти полный список здесь .

6. Заключение

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

Мы также рассмотрели основные пакеты, которые дают нам возможность сосредоточиться на логическом аспекте наших приложений.