Sobes.tech
Junior — Middle

Czy tworzenie tej samej instancji komponentu jest zapewnione przy użyciu adnotacji @Autowired w różnych częściach klasy oznaczonej @Component?

sobes.tech AI

Odpowiedź od AI

Tak, korzystając z adnotacji @Autowired w frameworku Spring do wstrzykiwania zależności w klasę oznaczoną jako @Component, domyślnie tworzony jest jeden egzemplarz komponentu (zakres Singleton). Oznacza to, że w różnych miejscach klasy, gdzie ten sam komponent jest wstrzykiwany za pomocą @Autowired, będzie używany ten sam egzemplarz.

Na przykład:

@Component
public class MyService {
    @Autowired
    private MyRepository repo1;

    @Autowired
    private MyRepository repo2;

    public void doSomething() {
        // repo1 i repo2 odwołują się do tego samego egzemplarza MyRepository
    }
}

W ten sposób Spring zarządza cyklem życia komponentów i zapewnia ponowne użycie tego samego egzemplarza, chyba że zostanie to wyraźnie określone (np. za pomocą adnotacji @Scope).