Bean scope jikkontrolla kemm-il istanza joħloq il-container u kemm idumu ħajjin. Il-lifecycle callbacks iħalluk tħaddem kodiċi eżatt wara li bean jiġi mibni u eżatt qabel ma jiġi meqrud.
Bean scope jikkontrolla kemm-il istanza joħloq il-container u kemm idumu ħajjin. Il-lifecycle callbacks iħalluk tħaddem kodiċi eżatt wara li bean jiġi mibni u eżatt qabel ma jiġi meqrud.
@Service // singleton by default — one shared OrderService for the whole app
public class OrderService { }
@Component
@Scope("prototype") // fresh instance on every getBean/inject
public class ReportBuilder { }
In-nassa klassika: li tinjetta prototype f'singleton. Is-singleton jitqabbad darba, allura jżomm istanza prototype waħda għal dejjem — il-wegħda ta' "ġdida kull darba" tinkiser. Irranġaha b'@Lookup, ObjectProvider<ReportBuilder>, jew scoped-proxy.
@Component
public class ConnectionPool {
@PostConstruct // runs after dependencies are injected, before use
public void open() { /* open sockets, warm caches */ }
@PreDestroy // runs on graceful container shutdown (singletons only)
public void close() { /* release resources */ }
}
Importanti: Spring ma jsejjaħx @PreDestroy fuq beans prototype — jgħaddihom u jieqaf isegwihom, allura int responsabbli għat-tindif tagħhom.
Dan jiddistingwi lil dawk li jittrattaw Spring bħala maġija minn dawk li jifhmu l-container. Il-bug tas-singleton li jżomm prototype huwa xenarju favorit fl-intervisti għax huwa sottili u jikkawża bugs reali fil-produzzjoni. Li tkun taf li s-singletons iridu jkunu stateless u thread-safe (huma kondiviżi fost il-request threads kollha) huwa t-tagħlima prattika li l-intervistaturi jisimgħu għaliha.
Librerija ta' mistoqsijiet ta' intervisti tal-IT b'tweġibiet dettaljati — minn Junior sa Senior.
Iddona