Spring framework - перші кроки (конспект перший), айті-шні замітки
Spring Framework - явище на Олімпі індустрії розробки програмного забезпечення. гідне уваги, хоча б тому, що Spring зміг вийти за рамки Java спільноти і зробити крок в "святая святих" - в .Net. Використовуючи досвід, набутий мною під час викладання на тренінгах з підготовки Java розробників. я постараюсь в циклі статей донести до Новомосковсктелей блогу основні концепції. закладені в Spring. Створити "конспект лекцій", який допоможе Вам зробити свої перші кроки в світ J2EE з використанням Spring Framework.
Spring Framework - перші кроки
Spring це багатошаровий J2EE фреймворк. дозволяє розробникам використовувати напрацювання "3й сторони" в модульної манері. Spring - це Dipendensy Injection (DI) фреймворк. Spring - це Inversion of Control контейнер. Spring - це більше 2 Мб документації. Spring - це кілька тисяч класів і інтерфейсів. Spring - це ...
Як же зорієнтуватися у всьому цьому різноманітті термінів, класів і найголовніше ідей, закладених родоначальником фреймворка, Родом Джонсоном?
Конспект перший. Що таке фреймворк?
Мені досить часто доводиться чути в середовищі розробників ходове слівце "framework". Його використовують досить часто як до місця, так і не дуже. Втім, це характерно не тільки для цього терміна, а мабуть, для більшості слів, запозичених з інших мов. Ймовірно доля у них така - в міру приживання в різних середовищах, вони починають обростати містичної аурою, що замінює, під час, її справжнє значення. Ось так і зі словом "framework" - варто тільки починаючому розробнику звернутися до старших товаришів з питанням, як чуєш у відповідь: "Пошукай, який-небудь фреймворк!"
Тому, для того щоб сміливо рушити в вивчення Spring. на мій погляд, необхідно визначитися з тим, що ж ховається під цим загадковим словом.
Вікіпедія, дає досить точне, але не проливає світло на досліджуваний в цій лекції питання, визначення: "framework ... ... help develop and glue together the different components of a software project". Тобто фреймворк являє собою програмне забезпечення, що дозволяє склеїти різні компоненти проекту.
Цієї інформації, однак, мало, тому що вона не володіє повнотою опису. Наприклад, Apache Commons Logging (JCL) теж дозволяє "приклеїти" до вашого додатком один з популярних логери, однак JCL, не є фреймворком. а являє собою бібліотеку класів.
У чому ж різниця між бібліотекою і фреймвороком. Пошуком відповіді на це питання, занінялся Arnon Rotem-Gal-Oz в своїй статті "Frameworks vs. Libraries ". Не буду втомлювати Новомосковсктеля переказуванням статті, а обмежуся лише ключовими моментами:
- Бібліотека попередня концепція. яка об'єднує утилітарні класи і їхні методи з метою надати користувачеві певну функціональність;
- Фреймворк. з іншого боку, надає як функціональність. так і послідовність викликів (flow) вашого коду з метою надання необхідної вам специфіки. Цей принцип викликів вашого коду ззовні (фреймворком) і отримав назву Inversion of Control (IoC). який ми будемо розглядати детально в одній з наступних лекцій;
У наступному конспекті нам належить детально розібратися з такими термінами, як Inversion of Control (IoC). Dependancy Injection (DI). Application Context і ін.