- Що таке IoC?
- Inversion of Control (IoC) або Інверсія контролю — це принцип проектування, який є дуже важливим у об'єктно-орієнтованому програмуванні, де контроль за потоком програми не здійснюється самим об'єктом, а передається зовнішньому фреймворку.
- За своєю суттю, IoC змінює спосіб керування об'єктами та їх інстанціації.
- Чому IoC важливий?
- IoC допомагає зменшити зв'язність між об'єктами, що спрощує керування та обслуговування коду.
- Використовуючи IoC, ми можемо легко змінювати, тестувати та оновлювати компоненти без необхідності змінювати логіку основного додатку.
- Роль Spring у IoC:
Spring — це один з фреймворків, який використовує IoC як основу своєї архітектури, зокрема через контейнер IoC, відомий як ApplicationContext.
Як працює IoC у Spring
- У Spring IoC реалізується через Dependency Injection (DI) — об'єкти керуються контейнером Spring, а їх залежності "впроваджуються" у момент потреби.
- Приклад: Spring автоматично керує такими об'єктами, як
Service
,Repository
та їх залежностями.
Види Dependency Injection:
Constructor Injection: Впровадження залежностей через конструктор.
@Service
public class MyService {
private final MyRepository myRepository;
@Autowired
public MyService(MyRepository myRepository) {
this.myRepository = myRepository;
}
}
Setter Injection: Впровадження залежностей через методи setter.
@Service
public class MyService {
private MyRepository myRepository;
@Autowired
public void setMyRepository(MyRepository myRepository) {
this.myRepository = myRepository;
}
}
Field Injection: Впровадження залежностей безпосередньо через анотацію в полі.
@Service
public class MyService {
@Autowired
private MyRepository myRepository;
}
огляд ioc
Перекладено з: Memahami Inversion of Control (IoC) di Spring Framework