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

Полный пример кода доступен || на Github || .

Обзор пакета org.springframework и проектов Spring.

Автор оригинала: baeldung.

1. введение

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

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

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

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

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

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

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

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

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

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

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

4.1. Spring Web MVC

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

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

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

4.2. Платформа Spring IO

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

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

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

4.3. Пружинный Ботинок

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

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

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

  1. CLI – интерфейс командной строки, основанный на Groovy, для запуска/остановки приложений, созданных spring boot.
  2. Boot Core – База для других модулей.
  3. Автоматическая настройка – Модуль для автоматической настройки широкого спектра проектов Spring. Он обнаружит доступность определенных фреймворков (Spring Batch, Spring Data JPA, Hibernate, JDBC).
  4. Привод – При добавлении этого проекта в приложение будут включены определенные корпоративные функции (Безопасность, Метрики, страницы ошибок по умолчанию).
  5. Starters – Различные проекты быстрого запуска для включения в качестве зависимости в файл сборки Maven или Gradle. Он будет иметь необходимые зависимости для этого типа приложения. В настоящее время существуют стартовые проекты для веб-проекта (на основе tomcat и jetty), Spring Batch, Spring Data JPA, Spring Integration, Spring Security.
  6. Инструменты – В этот проект включен инструмент сборки Maven и Gradle, а также пользовательский загрузчик Spring (используемый в одном исполняемом 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 заключается в том, насколько легко она может быть расширена в соответствии с индивидуальными требованиями. Он выпущен под лицензией Apache 2.0 , поэтому вы можете уверенно использовать его в своих проектах.

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

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

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

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

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

Особенности:

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

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

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

4.7. Пружинная оболочка

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

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

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

4.8. Пружинный Мобильный

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

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

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

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

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

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

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

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

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

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

Быстро начните работу с Создания пакетной службы и с другими ресурсами Spring batch /.

5. Основные Пружинные Пакеты

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

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

  • org.springframework.context – Этот пакет основан на пакете beans, чтобы добавить поддержку источников сообщений и шаблона проектирования наблюдателя, а также возможность для объектов приложения получать ресурсы с помощью согласованного 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 framework. Вы можете найти полный список здесь .

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

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

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