org.springframework

org.springframework

1. Вступление

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

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

2. Характеристики

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

  • Веб-приложение Spring MVC и платформа веб-сервиса RESTful

  • Аспектно-ориентированное программирование, включая декларативное управление транзакциями Spring

  • Внедрение зависимости

  • Инверсия контроля

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

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

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

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

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

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

4.1. Spring Web MVC

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

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

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

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

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

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

Взгляните наthe GitHub project.

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. Starters - различные проекты быстрого запуска для включения в качестве зависимости в файл сборки Maven или Gradle. Он будет иметь необходимые зависимости для этого типа приложения. В настоящее время существуют начальные проекты для веб-проектов (на основе tomcat и jetty), существуют Spring Batch, Spring Data JPA, Spring Integration, Spring Security.

  6. Tools - в этот проект включены инструменты сборки Maven и Gradle, а также пользовательский загрузчик Spring Boot Loader (используемый в единственном исполняемом файле jar / war).

Мы можем найти артефакт Mavenhere и взглянуть наthe GitHub project.

4.4. Spring Data

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

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

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

4.5. Spring Security

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

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

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

Взгляните наFAQs безопасности Spring, чтобы получить более глубокое представление, и на страницу зависимостейMaven. Кроме того, ознакомьтесь с руководствами по безопасности Spring дляAuthentication,Registration иsetup Spring Security с Maven.

4.6. Spring Social

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

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

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

  • Контроллер подключения, который управляет потоком авторизации между вашим веб-приложением Java / Spring, поставщиком услуг и вашими пользователями.

  • Привязки Java к API популярных поставщиков услуг, таких как Facebook, Twitter, LinkedIn, TripIt и GitHub.

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

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

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

4.7. Spring Shell

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

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

The GitHub project можно найти здесь.

4.8. Spring Mobile

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

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

  • Абстракция распознавателя устройств для обнаружения на стороне сервера мобильных и планшетных устройств

  • Управление настройками сайта, которое позволяет пользователю указать, предпочитает ли он «обычный», «мобильный» или «планшетный» интерфейс

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

  • Управление представлениями с учетом устройства для организации и управления различными представлениями для конкретных устройств.

Этотsample application поможет вам быстро начать работу.

Вы также можетеdetect a device, обрабатыватьwebsite preference или обслуживать мобильный веб-контент с помощью Spring MVC.

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

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

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

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

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

Начните быстро сCreating a Batch Service и с другим пакетом Springresources.

5. Пакеты Core Spring

Давайте посмотрим на основные пакеты Spring.

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

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

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

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

  • 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. Вы можете найти полный списокhere.

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

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

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