Junior — Middle
Чӣ гуна роҳҳо барои иҷрои ворид кардани вобастагиро барои Beans дар барнома вуҷуд доранд?
sobes.tech AI
Ҷавоб аз AI
Дар Java, татбиқи вобастагӣ (Dependency Injection, DI) барои Beans метавонад ба чанд роҳ иҷро шавад:
- Тӯли конструктор — вобастагиҳо ба конструктори синф гузошта мешаванд. Ин усули беҳтарин аст, зеро имкон медиҳад, ки объектҳои ғайрирасмӣ сохта шаванд ва тест кардан осонтар шавад.
public class Service {
private final Repository repo;
public Service(Repository repo) {
this.repo = repo;
}
}
- Тӯли setters (Setter Injection) — вобастагиҳо тавассути усулҳои setter пас аз сохта шудани объект гузошта мешаванд.
public class Service {
private Repository repo;
public void setRepository(Repository repo) {
this.repo = repo;
}
}
- Тӯли майдонҳо (Field Injection) — вобастагиҳо мустақиман ба майдонҳои синф бо истифода аз аннотатсияҳо, масалан,
@Autowiredдар Spring.
public class Service {
@Autowired
private Repository repo;
}
- Тӯли усулҳои фабрика ё синфҳои конфигуратсия — сохтан ва пайваст кардани Beans дар синфҳои конфигуратсия ё XML.
Ҳар як усул дорои афзалиятҳо ва нуқсонҳо аст, аммо дар барномаҳои муосир бештар истифодаи инъексияи конструктор ё аннотатсияҳои Spring барои пайваст кардани автоматӣ истифода мешавад.