Junior — Middle
Тәуелділікті инъекциялау контекстінде Singleton және Prototype аясындағы айырмашылық неде?
sobes.tech AI
AI-дан жауап
Контекстте тәуелділікті енгізу кезінде көрініс ауқымы (scope) объектілердің өмірлік циклін және жасалатын көшірмелер санын анықтайды.
-
Singleton: объект бүкіл қолданба немесе DI контейнерінің өмірлік циклінде бір рет жасалады. Барлық сұраулар осы тәуелділікке бірдей көшірмені алады. Бұл қызметтер үшін ыңғайлы, олар күйін сақтау немесе ортақ болу керек.
-
Prototype: әр сұрауда жаңа объект көшірмесі жасалады. Бұл тәуелсіз объект қажет болғанда пайдалы, ол өз күйімен.
Мысал:
// Singleton ауқымы
@Component
@Scope("singleton")
public class MyService {
// қолданба бойынша бір көшірме
}
// Prototype ауқымы
@Component
@Scope("prototype")
public class MyPrototypeService {
// әр сұрауда жаңа көшірме
}
Осылайша, Singleton бірегей көшірмені қамтамасыз етеді, ал Prototype — бірнеше тәуелсіз көшірмелер, бұл қолданба күйін басқару мен өнімділікке әсер етеді.