logo

Ін’єкція залежності навесні

  1. Ін’єкція залежності навесні
  2. Пошук залежностей
  3. Ін'єкція залежності

Впровадження залежностей (DI) — це шаблон проектування, який усуває залежність із коду програмування, щоб можна було легко керувати програмою та тестувати її. Ін’єкція залежностей робить наш програмний код слабко зв’язаним. Щоб краще зрозуміти DI, давайте спочатку розберемося з пошуком залежностей (DL):

Пошук залежностей

Пошук залежностей — це підхід, за якого ми отримуємо ресурс після запиту. Існують різні способи отримати ресурс, наприклад:

 A obj = new AImpl(); 

Таким чином, ми отримуємо ресурс (примірник класу A) безпосередньо за новим ключовим словом. Інший спосіб - заводський:

 A obj = A.getA(); 

Таким чином ми отримуємо ресурс (екземпляр класу A) за допомогою виклику статичного фабричного методу getA().

Крім того, ми можемо отримати ресурс за допомогою JNDI (інтерфейс каталогу імен Java), як:

 Context ctx = new InitialContext(); Context environmentCtx = (Context) ctx.lookup('java:comp/env'); A obj = (A)environmentCtx.lookup('A'); 

Отримати ресурс можна різними способами. Давайте розглянемо проблему в цьому підході.

Проблеми пошуку залежностей

Існує в основному дві проблеми пошуку залежностей.

    щільне зчепленняПідхід пошуку залежностей робить код тісно пов’язаним. Якщо ресурс змінюється, нам потрібно внести багато змін у код.Непросто для тестуванняТакий підхід створює багато проблем під час тестування програми, особливо під час тестування чорного ящика.

Ін'єкція залежності

Ін’єкція залежностей — це шаблон розробки, який усуває залежність програм. У такому випадку ми надаємо інформацію із зовнішнього джерела, наприклад файлу XML. Це робить наш код слабко зв’язаним і легшим для тестування. У такому випадку ми пишемо код так:

 class Employee{ Address address; Employee(Address address){ this.address=address; } public void setAddress(Address address){ this.address=address; } } 

У такому випадку екземпляр класу Address надається зовнішнім джерелом, наприклад файлом XML, за допомогою конструктора або методу налаштування.

Два способи впровадження залежностей у фреймворк Spring

Spring Framework надає два способи впровадження залежності

  • За Конструктором
  • Методом сетера

Майбутні теми Spring Dependency Injection

Впровадження залежностей конструктором

Давайте подивимося, як ми можемо ввести залежність за допомогою конструктора.


Ін’єкція залежностей за методом встановлення

Давайте подивимося, як ми можемо ввести залежність за допомогою методу установки.