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 с минимальными затратами труда.
Приложение, созданное с его помощью, может быть в значительной степени автоматически сконфигурировано с некоторыми разумными значениями по умолчанию, и, кроме того, оно может быть улучшено с помощью метрик (сколько запросов, сколько времени они потребовали и т. Д.).
Он состоит из нескольких (необязательных) модулей:
-
CLI - интерфейс командной строки, основанный на Groovy, для запуска / остановки приложений, созданных при весенней загрузке.
-
Boot Core - База для других модулей.
-
Auto-configure - Модуль для автоматической настройки широкого спектра проектов Spring. Он обнаружит наличие определенных сред (Spring Batch, Spring Data JPA, Hibernate, JDBC).
-
Actuator - при добавлении этого проекта в ваше приложение будут включены определенные корпоративные функции (безопасность, показатели, страницы ошибок по умолчанию).
-
Starters - различные проекты быстрого запуска для включения в качестве зависимости в файл сборки Maven или Gradle. Он будет иметь необходимые зависимости для этого типа приложения. В настоящее время существуют начальные проекты для веб-проектов (на основе tomcat и jetty), существуют Spring Batch, Spring Data JPA, Spring Integration, Spring Security.
-
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 и всесторонние функции, которые каждый проект предлагает, чтобы сделать наши веб-приложения безопасными, масштабируемыми и простыми в использовании. жить с.
Мы также рассмотрели основные пакеты, которые дают нам возможность сосредоточиться на логическом аспекте наших приложений.