Spring java: основи та уроки для початківців
Відео: "Spring для початківців"
На сьогоднішній день практично для всіх додатків використовують скриптова метод програмування - Spring Java. Основна перевага даного мови полягає в тому, що користувачеві надається можливість розробити програму у вигляді простого набору loose-coupled елементів, не прив`язаних один до одного.
Простіше кажучи, чим менше блоки додатки пов`язані між собою, тим легше прописати новий функціонал і при цьому контролювати вже існуючу структуру. Одним з найбільш яскравих і простих прикладів є керівництво транзакціями. За допомогою Spring Java управління структурою транзакції здійснює незалежно від головної логіки пов`язаності з БД. Будь-які зміни конструкції логіки не вплинуть на транзакційність, тобто не порушать основну ідею програми. Spring володіє модульностью.
Різні елементи і структури можна видаляти або додавати в будь-яких місцях практично незалежно один від одного. По суті, програму можна розділити таким чином, що вона навіть не зрозуміє, що управляється за допомогою Spring Java. Крім того, даний скриптова мова програмування значно спрощує модульне тестування, так як елемент, розроблений для контенту IoC, досить просто инжектировать на помилкові взаємозв`язку і тим самим перевірити функціональність і правильність його опису.
Spring Java також помітно спрощує ініціалізацію і підстроювання елементів програми, тобто ви можете легко і без проблем налаштувати додатки під себе, не роблячи при цьому глобальних перенастроювань з основному коді Spring.
Сьогодні можна знайти по Java Spring підручники у величезній кількості і на різних мовах (англійською, російською та т. Д). Тому осилити "Джава" ви можете і самостійно, а ми в цьому вам постараємося допомогти!
Spring зсередини
Як побудована архітектура "Джава спринг" зсередини, напевно, знає далеко не кожен. Тому давайте розглянемо більш детально цю конструкцію:
- Установка BeanDefinition і парсірованіе конфігурації контексту (Xml, JavaConfig, Groovy і AnnotationConfigApplicationContext). На початковому етапі створюються всі інтерфейси - BeanDefinition. Залежно від вибору конфігурації необхідно використовувати відповідний механізм - парсірованіе компонентів програми.
- Налаштування створених інтерфейсів (видів) - BeanDefinition.
- Установка кастомних об`єктів за допомогою FactoryBean.
- Створення екземпляра (чорнових) бінов.
- Налаштування створених бінов.
- Перевірка функціональності написаних бінов.
Spring: початок
Якщо ви тільки вирішили почати знайомитися з програмуванням на "Джава спринг", Рекомендуємо починати саме з Java ee Spring (фреймворк). Це один з найпростіших методів з відкритим вихідним кодом для даної платформи "Джава". Фреймворк створює послідовну конструкцію, яку можна без проблем застосувати до більшості завдань, що були вже раніше описані на основі Java. Простота і прозорість фреймворка дозволить вам самостійно побачити помилки в написанні.
Spring можна описати як сукупність кількох незалежних фреймворків, так і більш складних конструкцій (фреймворк в фреймворку). Більшість даних структур може функціонувати незалежно один від одного, проте вони демонструють величезний обсяг працездатності при спільному запуску програми. Ці компоненти поділяються на структурні деталі комплексних програм в залежності від їх призначення:
- Контролер - inversion of control. Забезпечують коректну працездатність, відповідають за конфігурацію елементів програми та регулюють функціональний цикл об`єктів Java.
- Доступ до даних - функціонал спрямований на управління базами даних (БД) в Java. Завдяки даному фреймворку забезпечується рішення величезної кількості складних завдань на базі Java environments.
- Фреймворк аспектно-орієнтовною настройки. Працює з компонентами, які не можуть реалізуватися без будь-яких втрат на Java.
- Управління транзакціями. Фреймворк координує АР і інструментарій налаштовані об`єктами управліннями транзакцій для елементів Java.
- Фреймворк віддаленого доступу і управління. Конфігурація відбувається локально.
- Аутентифікація і авторизація. Підтримують конфігурацію на багатьох популярних протоколах через Spring Security.
На сьогоднішній день для всіх фреймворків в "Спрінг" надається ряд можливостей:
- Автоматичне управління ресурсами.
- Обробка виключених компонентів при доступі до даних виключення самого "Спрінг".
- Прозоре управління транзакціями під час будь-яких операцій з даними.
- Розархівація ресурсів.
- Обробка абстракції у багатьох форматах.
Необхідно розуміти призначення всіх фреймворків, так як це основа Java Spring. Для початківців рекомендується починати вивчати всі компоненти по групам і пробувати їх використовувати на прикладах.
Як зробити простий додаток на Java Spring (фреймворк)
Конфігурацію додатка в Spring можна здійснювати декількома способами. Одним з найбільш поширених і досить простих вважається винос конфігурації в XML-файл. Цей тип традиційно використовують у багатьох версіях Java Spring. Для початківців рекомендуємо використовувати такі інструменти як java (1.5), tomcat (6), ant (1.7), eclipse (3), junit 4x.
Для того щоб описати просту задачку в Java Spring, необхідно дотримуватися такої черговості:
- Створити саму структуру програми. Для цього вам знадобиться на eclipse встановити спеціальний плагін - Spring IDE. Також необхідно створити проект на Springapp і додатково додати папку war.
- Створити index.jsp. У Java Spring web додатково прописати WEB-INF і помістити в неї web.xml.
- Деплоім програму в tomcat. Для того щоб розгорнути додаток, необхідно скористатися ANT-скриптом, який буде містити мета для компіляції, перенесення і будови програми.
- Прописавши повністю всі програми, зробіть перевірку. Запускайте tomcat і відкривайте веб-сторінку з адресою: localhost: 8080 / springapp /.
- Потім вам знадобиться встановити Spring Framework і розпакувати його.
На цьому етапі можна сказати, що ви спішно завершили настройку мережевого оточення. Далі слід підлаштувати Spring Java config:
- Для початку необхідно зробити деякі зміни в web.xml, які ви знайдете в папці WEB-INF. Наша мета полягає в тому, щоб прописати диспетчер вхідних запитів додатки.
- Виробляємо диспетчеризацію вхідних запитів. Ми вирішили все запити з виду `.htm` направляти на сервлет-диспетчер.
- Потім скопіюйте бібліотеки даних в WEB-INF / lib.
- Створіть контролер в springapp.web і пропишіть тест.
- Задайте вигляд і скомпілюйте додатки на сервері.
- Спробуйте запустити програми.
Що ж ми зробили в Spring Java? Для чайників деякі з вище перерахованих пунктів будуть незрозумілі, тому спробуємо описати простіше:
- Ми створили стартову сторінку- index.jsp, яка служить для того, щоб перевірити коректність установки оточення.
- Прописали диспетчер з відповідним файлом опису springapp-servlet.xml.
- Створили контролер і прописали для нього текст.
- Поставили вигляд програми.
Що таке Java Spring Security і навіщо він потрібен?
Spring Security дозволяє авторизувати і аутентифицировать додатки. Крім того, даний фреймворк забезпечує безпеку корпоративних завдань, які створюються за допомогою Spring Framework.
Ключові компоненти Spring Security:
- SecurityContextHolder. Містить поточну інформацію про безпеку, а також включає в себе докладні дані про користувача, який запустив додатки. За замовчуванням SecurityContextHolder зберігає інформацію в ThreadLocal, а це означає, що контекст безпеки доступний для всіх методів, які реалізуються в даному потоці.
- SecurityContext. Містить всю інформацію про безпеку системи, яка пов`язана із запитом користувача, а також об`єкт Authentication.
- Authentication. Розпізнає користувача з програмною боку.
- GrantedAuthority. Показує дозволу, які отримав користувач в масштабах всього програми.
- UserDetails. Відображає необхідну інформацію для налаштування Authentication з інших джерел систем безпеки. Містить такі дані, як нікнейм користувача, пароль і прапори.
- UserDetailsService. Використовують для того, щоб створити UserDetails за допомогою реалізації одного методу даного інтерфейсу.
інтеграція Java
Integration Java Spring - це унікальний фреймворк, який включає в себе настройку функцій, що відповідають за відправлення повідомлень. Крім того, даний об`єкт відповідає за побудову дієво-орієнтовною архітектури:
- Роутерів.
- Адаптерів для взаємодії з іншими системами.
- Активаторів сервісів.
- Трансформерів і ін.
Spring Hadoop
Це нова розробка VMware, яка поєднала два величезних проекту - Apache Hadoop і Spring. Серед безлічі переваг нового фреймворка варто виділити кілька основних. це:
- Підтримка конфігурації на базі HBase.
- Професійна підтримка Batch Spring.
- Підтримка користування з інтеграцією Java Spring.
- Параметризація конфігурації Hadoop.
- Пристрої шаблонної обробки сполучних компонентів з Hadoop.
- Декларативна підтримка для інструментів Hadoop.
- Програмована підтримка для компонентів Hadoop.
Java Hibernate
Практично всі веб-додатки не можуть обійтися без зберігання великої кількості інформації. Як правило, для вирішення цієї проблеми використовують різні спеціальні програми - СУБД і т. Д. За структурою організації і частоті використання бази даних можна поділити на кілька підгруп, і так вийшло, що реляційні є найбільш поширеними. Як правило, опис даних конструкцій досить великі, і не завжди їх раціонально використовувати.
Java Spring - технологія для полегшення написання додатка - рекомендує використовувати ORM (Object-Relational Mapping). Реалізує цей метод бібліотека Hibernate, яка перетворює дані з одного виду в інший. Крім того, з її допомогою можна легко налаштувати підключення до файлів СУБД і управляти транзакціями.
Для преображення одного класу в інший на Java Hibernate Spring існує кілька спеціальних генераторів:
- Increment.
- Identity.
- Sequence.
- Hilo.
- Seqhilo.
- Uuid.
- Guid.
- Native.
- Assigned.
- Foreign.
- sequence-identity.
Переваги використання Java Hibernate Spring:
- Проста структура механізмів взаємозв`язку з БД і POJO.
- Автоматична генерація компонентів Primary Key.
- HQL.
- Кеш: Second level, Session Level і, звичайно ж, Query.
- Хороша продуктивність.
- Вибірка Outer Join.
Практика для новачків
Одним з самих простих текстових проектів на Java Spring є написання програми "вітання". Платформа не вимагає додаткової реєстрації або будь-яких складних конструкцій і форм на bootstrap. Використовуємо простий html без динаміки. І нехай основна форма має:
Відео: Java для тестувальників
- Поле для введення тексту "вітання".
- клавішу "створити запис", При натисканні на яку наш текст буде відправлятися на обробку та зберігатися в БД.
- Список, який буде відображати раніше створення запису.
Більше нам нічого не потрібно. Переходимо до Java Spring. Практика:
- Ясна річ, встановіть на свій комп`ютер Java.
- Поставте мавен.
- Створіть проект Spring-boot.
- Встановіть БД.
- Розподіліть класи моделей. Найкраще створіть якийсь один.
- Реалізуйте операцію з компонентами за допомогою create-read-update-delete.
- Створіть форму на jsp.
- Прив`яжіть свою форму до відповідного контролера.
Що таке MVC, і яким чином воно пов`язане зі Spring
MVC - це власна платформа "Спрінг", Яка орієнтована на запити користувачів. У ній заданий статистичний вид для всіх функцій запитання-орієнтовних систем. Завдання кожного інтерфейсу має бути простим і лаконічним, щоб користувач за бажанням міг без проблем заново імплементувати додатки. Дана платформа прокладає пряме підключення до front-end-коду. Всі інтерфейси пов`язані з об`єктом Servlet API. Завдяки цьому взаємозв`язку зазнає суттєвого спрощення програмування додатки.
До найбільш важливим інтерфейсів можна віднести:
- Model - модель, дані.
- View - відображення, зовнішній вигляд.
- Controller - управління, встановлення взаємозв`язку між першими двома поняттями.
До найбільш важливим інтерфейсів можна віднести:
- HandlerAdapter.
- Controller.
- View.
- HandlerMapping.
- ViewResolver.
- HandlerInterceptor.
- LocaleResolver.
- MultipartResolver.
Java Spring MVC (model-view-controlle) відкриває перед розробником багато додаткових можливостей:
- Чітке і простий розподіл між запитами.
- Кожен інтерфейс відповідає виключно за свою частину роботи.
- Інтерфейс можна без проблем змінити за допомогою альтернативної реалізації.
- Всі інтерфейси пов`язані з API Servlet.
- Підвищений рівень ефективності та функціональності для веб-додатків.
- Можливість використовувати різні частини "Спрінг", А не тільки MVC (model-view-controlle).
основний пакет
Основний пакет є найбільш фундаментальною частиною системи і забезпечує можливість впровадження залежностей, дозволяє управляти бобу-функціональністю контейнера. Основною концепцією тут є BeanFactory, яка забезпечує шаблон фабрики, усуває необхідність у програмній підтримці Сінглтон і дозволяє відокремити конфігурацію і специфікацію залежностей від фактичної логіки програми.
Пакет DAO надає JDBC-рівень абстракції, що позбавляє від необхідності робити стомлююче JDBC-кодування і розбір бази даних постачальника кодів конкретних помилок. Крім того, можна зробити програмне, а також декларативне управління транзакціями не тільки для класів, що реалізують інтерфейси, але і для всіх ваших Pojos (простих об`єктів Java).
Пакет ORM забезпечує інтеграцію шарів популярних API для відображення реляційних об`єктів, включаючи JDO, Hibernate і Ibatis. Використовуючи пакет ОРЗ, ви можете застосовувати всі O / R-картографи в поєднанні з іншими функціями Spring-пропозиції.
АОП-пакет в Spring забезпечує сумісний аспект орієнтованого програмування, реалізації АОП Alliance, що дозволяє визначити, наприклад, метод-перехоплювач і відв`язати код реалізації функціональних можливостей.
Застосовуючи метадані на рівні вихідних текстів, можна включити всі види поведінкової інформації в код, наприклад NET-атрибути.
Веб-пакет Spring забезпечує основні веб-функціїінтеграції, такі як многочастная функціональність, ініціалізація контекстів із застосуванням сервлетів слухачів і контексту веб-орієнтованих додатків. Реалізація в Spring MVC забезпечує чіткий поділ між моделлю коду домену та веб-формою, що дозволяє використовувати всі інші особливості Spring Framework для перевірки.
Вимоги до доменних об`єктів
Для того щоб додатки JPA нормально функціонувало, необхідно стежити за коректністю написання таких вимог:
- "Джава"-біном або POJO.
- Клас не повинен успадковуватися (же не бути final).
- Прописаний конструктор. Стандартно йде без будь-яких параметрів.
- Написати Implements Serializable. Це необхідно для того, щоб компоненти зберігалися в кеші в спеціальному вигляді.
- Прописати ідентифікацію всіх полів, тобто об`єкти не можуть зберігатися в БД, якщо у них немає Primary key.
- Наявність атрибутів.
- У getters прописати конкретну посилання на колекцію об`єктів, а не її копію. Небажано використовувати масиви, так як, коли необхідно повернути наш Array, потрібно прописувати його копію. Крім того, досить складно від масиву успадковуватися.
- Ознайомитися з літерою. Перед початком роботи в Java Spring вам необхідно розібрати в багатьох термінах і значеннях тих чи інших функцій. Простіше кажучи, отримати хоч найменші поняття, що це таке і з чим його вживають.
- Спробувати написати самостійно одну з простих завдань. Наприклад, додаток _ПРІВЕТ_, "змійка" або будь-яке інше.
- Ознайомитися з WEB. Найкраще в цьому допоможуть онлайн-курси. Якщо не хочете, то беріться знову за книги і розбирайтеся вже з новими поняттями самостійно.
- Пробуйте ускладнити прості завдання _прівет_ більш складними конструкціями. Також рекомендуємо спробувати написати просте додаток, яке могло б стати в нагоді вам в реальному житті. Так вам простіше буде подужати даний метод програмування.
Допоміжні групи об`єктів
Існує кілька додаткових класів:
- "Спрінг Дао". Цей клас допомагає працювати з БД (базами даних).
- Спрінінг транзакцій. Як правило, при написанні програми у всіх випадках використовується Transaction Manager. Після того, як користувач визначив методи, транзакції будуть додаватися, автоматично створюватися і завершуватися.
- Спрінінг Security. Даний клас задає авторизацію користувача (логін, пароль і т. Д). Раціонально створювати як мінімум 10 биномом для того, щоб домогтися підвищеної ефективності в функціональності Security.
Розшифровка основних абревіатур в Java Spring
Знайомлячись з таким специфічним скриптовою методом програмування, як "Джава спринг", Можна зустріти різні абревіатури. Як правило, не на всіх сайтах або в підручниках можна знайти їх розшифровку, тому давайте розберемося, що є Java Spring. приклад:
- Inversion of Control - IoC - інверсія контролю або, простіше кажучи, головний модуль програми.
- АОП - аспектно-орієнтоване програмування. Завдяки цьому модулю "Джава" може без проблем підключитися до будь-якої точки доступу та прописати там необхідний код.
- MVC - Model-view-controller - це структурований шаблон, який задає і описує спосіб побудови конструкції всього програми, забезпечує взаємодію всіх частин в одній системі. Створює об`єкти web.
- Клас WEB призначена для того, щоб полегшити розробку авторизації фреймворка, відповідає за доступ до бінам і т. Д.
- ORM- Object-Relational Mapping - пов`язує БД (бази даних) з концепціями об`єктів-орієнтовних методів програмування, створюючи нову віртуальну базу даних.
- DAO призначений для роботи з базами даних в структурі "Спрінг".
- Service Abstraction - задає інтерфейси (зовнішньої вид) додатки, тобто відповідає за абстрагування завдання.
Сьогодні можна знайти досить багато корисної та цікавої інформації по Java Spring. Уроки, підручники, веб-семінари неодмінно допоможуть вам без проблем вивчити даний скриптова мова програмування. Якщо у вас виникли будь-які проблеми з написанням програми, перегляньте документацію по "Спрінг", В якій автори досить детально описали всі вимоги до структури "Джава", А також відповіли на запитання, як виправити часто здійснюються помилки.