Sobes.tech
Junior — Middle

Viene garantita la creazione della stessa istanza del componente quando si utilizza l'annotazione @Autowired in diverse parti di una classe contrassegnata con @Component?

sobes.tech AI

Risposta dell'AI

Sì, utilizzando l'annotazione @Autowired nel framework Spring per l'iniezione delle dipendenze in una classe annotata come @Component, di default viene creato un singolo esempio del componente (scope Singleton). Ciò significa che nei diversi punti della classe in cui viene iniettato lo stesso componente tramite @Autowired, verrà utilizzato lo stesso esempio.

Ad esempio:

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

    @Autowired
    private MyRepository repo2;

    public void doSomething() {
        // repo1 e repo2 fanno riferimento allo stesso esempio di MyRepository
    }
}

In questo modo, Spring gestisce il ciclo di vita dei componenti e garantisce il riutilizzo di un singolo esempio, a meno che non venga specificato diversamente (ad esempio, con l'annotazione @Scope).