Sobes.tech
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).