org.springframework

1. Въведение

Spring Framework предоставя изчистен и изразителен модел на програмиране и конфигуриране за модерни Java-базирани корпоративни приложения, които могат да работят на всяка платформа за внедряване.

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

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

Spring framework предлага изчерпателен списък с функции:

  • Пролетно уеб приложение на MVC и рамка за уеб услуги RESTful
  • Аспектно-ориентирано програмиране, включително декларативно управление на транзакции на Spring
  • Инжектиране на зависимост
  • Обръщане на контрол

и още много.

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

Ако искате да добавите Spring към вашия проект Maven, можете да намерите повече информация за него тук.

4. Пролетни проекти

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

Започнете от малко и използвайте точно това, от което се нуждаете - Пролетта е модулна по дизайн. Нека разгледаме някои от тези проекти тук.

4.1. Spring Web MVC

Уеб MVC рамката осигурява архитектура Model-View-Controller, проектирана около DispatcherServlet, която обработва всички HTTP заявки и отговори и прави приложението слабо свързано.

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

Тук можете да намерите пълното ръководство.

4.2. Пролетна IO платформа

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

Платформата IO е сертифицирана за работа с Java 7 и 8.

Погледнете проекта GitHub.

4.3. Пролетно зареждане

Spring Boot улеснява създаването на самостоятелни, базирани на пролетта приложения, базирани на производство, които можете да „просто стартирате“. Улеснява създаването на пролетно приложение с минимум работа.

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

Състои се от няколко (незадължителни) модула:

  1. CLI - интерфейс на командния ред, базиран на Groovy, за стартиране / спиране на създадени приложения за пролетно зареждане.
  2. Boot Core - Основата за други модули.
  3. Автоматично конфигуриране - Модул за автоматично конфигуриране на широк спектър от пролетни проекти. Той ще открие наличието на определени рамки (Spring Batch, Spring Data JPA, Hibernate, JDBC).
  4. Actuator - Този проект, когато бъде добавен, ще активира определени корпоративни функции (Защита, Показатели, Страници по грешка по подразбиране) към вашето приложение.
  5. Начало - Различни проекти за бърз старт, които да бъдат включени като зависимост във вашия файл за изграждане на Maven или Gradle. Той ще има необходимите зависимости за този тип приложение. Понастоящем съществуват начални проекти за уеб проект (базиран на tomcat и jetty), Spring Batch, Spring Data JPA, Spring Integration, Spring Security.
  6. Инструменти - Инструментът за изграждане на Maven и Gradle, както и персонализираният Spring Boot Loader (използван в един изпълним буркан / война) е включен в този проект.

Тук можем да намерим артефакта на Maven и да разгледаме проекта GitHub.

4.4. Пролетни данни

Мисията на Spring Data е да предостави познат и последователен, базиран на Spring модел за програмиране за достъп до данни, като същевременно запазва специалните черти на основното хранилище на данни.

Основната цел на този проект е да улесни изграждането на приложения, базирани на Spring, които използват нови технологии за достъп до данни, като нерелационни бази данни, рамки за намаляване на карти и услуги, базирани на облак, както и да предоставят подобрена поддръжка за технологии на релационни бази данни .

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

4.5. Пролетна сигурност

Spring Security е рамка, която се фокусира върху осигуряването на удостоверяване и упълномощаване на Java приложения. Както всички пролетни проекти, истинската сила на Spring Security се намира в това колко лесно може да бъде разширена, за да отговори на потребителските изисквания. Издава се под лиценз Apache 2.0, така че можете уверено да го използвате във вашите проекти.

Също така е лесно да се научите, внедрите и управлявате. Той има специално пространство за имена за сигурност, което предоставя директиви за най-често срещаните операции, позволявайки пълна защита на приложенията само в няколко реда XML и може да защити вашите приложения срещу атаки като фиксиране на сесии, кликване, фалшифициране на заявки между сайтове и т.н.

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

Разгледайте често задаваните въпроси на защитата на Spring, за да получите по-задълбочена представа и страницата за зависимост на Maven. Освен това разгледайте уроците за пролетна защита за удостоверяване, регистрация и настройка на Spring Security с Maven .

4.6. Пролетна социална

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

Характеристика:

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

Начални ръководства:

  • Достъп до Facebook данни
  • Пролетна настройка на социалния Twitter
  • Вторичен Facebook вход

Spring предоставя доста примери за проекти на GitHub, за да ви накара да започнете бързо, а референцията за Spring Social е удобна, както и с бърза начална страница.

4.7. Spring Shell

Spring Shell е интерактивна обвивка, която може лесно да бъде разширена с команди, използвайки Spring базиран модел на програмиране.

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

Проектът GitHub можете да намерите тук.

4.8. Spring Mobile

Spring Mobile е разширение на рамката и Spring Web MVC, което има за цел да опрости разработването на мобилни уеб приложения.

Spring Mobile е рамка, която предоставя възможности за откриване на типа устройство, отправящо заявка към вашия уебсайт Spring и обслужващо алтернативни изгледи въз основа на това устройство. Както всички пролетни проекти, истинската сила на Spring Mobile се намира в това колко лесно може да бъде разширена.

Характеристика:

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

Това примерно приложение ще ви помогне бързо да започнете.

Можете също така да откриете устройство, да обработвате предпочитания за уебсайт или да обслужвате мобилно уеб съдържание с Spring MVC.

4.9. Пролетна партида

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

Пакетните приложения в този контекст се отнасят до автоматизирани офлайн системи, насочени към обработка на групови данни. Spring Batch автоматизира тази основна партидна итерация, предоставяйки възможност за обработка на подобни транзакции като набор, обикновено в офлайн среда, без никакво взаимодействие с потребителя.

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

Източникът на данни за четеца може да бъде плоски файлове (текстов файл, XML файл, CSV файл ...), релационна база данни (MySQL ...), MongoDB.

По същия начин писателят може да записва данни в плоски файлове, релационни бази данни, MongoDB, mailer и т.н.

Започнете бързо, като създадете пакетна услуга и с други пролетни пакетни ресурси.

5. Основни пролетни пакети

Тук нека да разгледаме основните пакети Spring.

  • org.springframework.cache - Този пакет поддържа подпакети и класове за декларативно управление на кеша, настройка на кеша с отворен код в библиотеката на кофеин, класове за поддръжка на кеша с отворен код EhCache 2.x.

  • org.springframework.context - Този пакет се основава на пакета за фасул, за да добави поддръжка за източници на съобщения и за шаблона за дизайн на 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. Можете да намерите пълния списък тук.

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

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

Разгледахме и основните пакети, които ни предоставят сила да се съсредоточим върху логическия аспект на нашите приложения.