JavaRush /Java блог /Random UA /Переваги використання Spring
Alex
37 рівень

Переваги використання Spring

Стаття з групи Random UA
Багато розробників-початківців рано чи пізно стикаються зі Spring - популярним фреймворком для розробки додатків на Java. Головне, що дозволяє зробити Spring – спростити розробку J2EE програм для розробника. Ось основні переваги, які отримує розробник при використанні Spring:
Переваги використання Spring - 1
  • Spring надає каркас вашої майбутньої програми, якщо хочете "заготівлю" для вашої майбутньої програми. При цьому фреймворк диктує вам правила побудови програми - є певна архітектура програми, в яку вам потрібно вбудувати свою функціональність. Ця функціональність власне і буде бізнес логікою вашої програми. До складу Spring входить багато підпроектів, «заточених» під певну функціональність (SpringMVC, Spring Security, SpringData та ін. Повний список можна побачити за адресаою https://spring.io/projects), з яких розробник може вибрати найбільш підходящий йому, а решта не використовувати – це модульний принцип побудови програми;

  • у додатку на основі Spring об'єкти слабко пов'язані за рахунок використання впровадження залежностей. Однією метою створення Spring було розірвати залежність одних об'єктів від інших. Що таке залежність? Це коли об'єкт Object1 використовує методи іншого об'єкта Object2, тобто об'єкт Object1 залежить від об'єкта Object2, чиї методи він використовує. Чому він залежить? А тому, поки об'єкт Object2 не створений, Object1 не зможе реалізувати свою функціональність. Як розірвати залежність? В об'єкт Object1 "впровадити" посилання на об'єкт Object2 через конструктор або сетер. Цей процес і є використання залежності. При цьому важливо пам'ятати, що Spring об'єкти необхідно будувати на основі інтерфейсів, щоб залежності впроваджуються у вигляді інтерфейсу для можливої ​​подальшої заміни реалізації.

  • Вам не потрібно створювати об'єкти вручну за допомогою оператора new. Цю функцію делегували контейнер Spring. І це є інверсія контролю (IoC) – передача функції інстанціювання необхідних залежностей (об'єктів) контейнеру. Яка роль розробника в цьому запитаєте ви? Оголосити компонент, що він потрапив у контекст Spring. Контекст Spring-a просто - карта, де знаходяться всі бины. Коли кажуть, що бін перебуває у контексті спрингу - вважай, що бін лежить у карті, а спринг знає key, щоб його дістати з карти. Усе, що зазначено як бін в xml конфігурації чи класах анотаціями @Component - інстанціюється і кладеться в карту виду Map<key,bean> map, тобто. у контейнера є карта, де він "складує" всі біни (ключове поняття в Spring - бін, це керована контейнером сутність. Для того, щоб бін (звичайний клас) став керованим,

  • Spring звільняє як від необхідності створювати об'єкти, а й пов'язувати їх. Наприклад, анотація @Autowired дозволяє автоматично зв'язувати компоненти. Анотацію спрингу @Autowired можна було б описати по-простому так - дорогий друже, контейнер спринг, подивися будь ласка у своїй карті з бінами, чи немає у тебе там класу instanceof or implements того, перед чим я стою. Якщо є - дай мені посилання на поле, перед яким я оголошена. Автоматичне зв'язування дозволяє зменшити кількість коду щодо залежностей компонентів;

  • Spring налаштування компонентів відокремлені від програмного коду. Винесення конфігурації (управління залежностями) в окремий файл полегшує наступні зміни у проекті (заміна реалізацій):


    • покращена можливість тестування. Коли класи проектуються на основі DI та інтерфейсів, стає можливою проста заміна залежностей (фейковими реалізаціями) при тестуванні;

    • можливість програмування у декларативному стилі за допомогою анотацій зменшує кількість коду у додатку;

    • підтримка та хороша інтеграція з технологіями доступу до даних, транзакціями, AOP спрощує розробку;

    • хороше документування дуже допомагає при налагодженні програми;
Тим, хто хоче розібратися зі Spring, раджу прочитати К.Уоллс. Spring у дії – 3-тє видання і, звичайно, офіційну документацію.
Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ