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