Junior — Middle
Ar užtikrinama to paties komponento pavyzdžio sukūrimas naudojant @Autowired anotaciją skirtingose klasės dalyse, pažymėtose @Component?
sobes.tech AI
Atsakymas iš AI
Taip, naudojant @Autowired anotaciją Spring Framework'e priklausomybių injekcijai į žymėtą kaip @Component klasę, pagal numatytuosius nustatymus sukuriamas vienas komponento egzempliorius (Singleton scope). Tai reiškia, kad skirtingose klasės vietose, kur tas pats komponentas yra injekuojamas per @Autowired, bus naudojamas tas pats egzempliorius.
Pavyzdžiui:
@Component
public class MyService {
@Autowired
private MyRepository repo1;
@Autowired
private MyRepository repo2;
public void doSomething() {
// repo1 ir repo2 nurodo į tą patį MyRepository egzempliorių
}
}
Taip Spring valdo komponentų gyvavimo ciklą ir užtikrina vieno egzemplioriaus pakartotinį naudojimą, nebent nurodyta kitaip (pavyzdžiui, su @Scope anotacija).