Sobes.tech
Junior — Middle

Kas tekib kaks eraldi objekti, kui kaks klassi pöörduvad sama bean eksemplari poole?

sobes.tech AI

Vastus AI-lt

Kui kaks klassi pääsevad sama beani näidise juurde kontekstis, näiteks Spring Frameworkis, luuakse see sama objekt (üks beani näidis), mitte kaks eraldi. See on tingitud sellest, et Springis on beani vaikimisi scope singleton, mis tähendab ühte näidist kogu rakenduse kontekstis.

Näide:

@Component
public class MyBean {
    // ...
}

@Component
public class ClassA {
    private final MyBean myBean;
    public ClassA(MyBean myBean) {
        this.myBean = myBean;
    }
}

@Component
public class ClassB {
    private final MyBean myBean;
    public ClassB(MyBean myBean) {
        this.myBean = myBean;
    }
}

Selles näites saavad ClassA ja ClassB sama MyBean näidise.

Kui bean on konfigureeritud teise scope-iga (näiteks, prototype), siis iga taotluse korral luuakse uus objekt.