Реферат на тему " Spring Framework"




Скачати 329,45 Kb.
Сторінка3/4
Дата конвертації23.10.2016
Розмір329,45 Kb.
1   2   3   4
Ядро

IoC контейнер


В основі Spring лежить паттерн Inversion of control. Основна ідея цього паттерна полягає в викоріненні залежності компонентів чи класів застосування від конкретних реалізацій допоміжних інтерфейсів і делегуванні повноважень по управлінню створенням необхідних реалізацій IoC контейнеру. Розглянемо UML діаграму.

Мал. 1


IoC контейнер відповідає за створення необхідної реалізації Product для Consumer. При використанні класу Consumer в інших проектах ми зможемо замінити реалізацію интерфейсу Product на більш підходящу, не вносячи змін в код.
Основні переваги IoC контейнерів:

  1. Управління залежностями

  2. Спрощення повторного використання класів чи компонентів

  3. Спрощення unit-тестування

  4. Більш "чистий" код (Класи більше не займаються ініціалізацією допоміжних об’єктів. Не варто, звісно "перегинати палку", керуюи створенням абсолютно всіх об’єктів через IoC. В IoC контейнер найкраще виносити ті інтерфейси, реалізація яких може бути змінена в поточному проекті чи в майбутніх проектах.)

Паттерн IoC не єдиний, що дозволяє позбавитись від залежності від реалізації. Альтернативою IoC є добре відомі шаблони ServiceLocator/Factory.

Мал. 3. Шаблон ServiceLocator

Даний підхід вносить залежність коду від ServiceLocator, що призводить до меншої гнучкості. Основні недоліки шаблону ServiceLocator:


  1. Якщо в одному проекті в різних випадках необхідні різні реалізації Product, доведеться або міняти код виклику ServiceLocator в усіх використовуваних місцях, вказуючи додаткові параметри, або міняти сам ServiceLocator. Обидва варіанти призводять до "засмічування" коду, внесенню додаткових умов і параметрів, які ускладнюють код і його повторне використання.

  2. При використанні коду в інших проектах

  • (ServiceLocator розповсюджується разом з кодом) У випадку, коли для отримання потрібної реалізації Product необхідні додаткові параметри, доведеться вносити зміни в наданий ServiceLocator. Це ще призводить до існування в системі декількох ServiceLocator, кожен з яких необхідно по-своєму налаштовувати, що ускладнює супровід.

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

Найпоширеніший спосіб вказання залежностей це XML файли конфігурації (applicationContext.xml).

Spring – це значно більше, ніж просто IoC контейнер. Framework спрощує розробку J2EE проектів, реалізуючи низькорівневі і найчастіше використовувані частини корпоративного застосування.


1   2   3   4


База даних захищена авторським правом ©uchika.in.ua 2016
звернутися до адміністрації

    Головна сторінка