Sobes.tech
Junior — Middle

A criação da mesma instância do componente é garantida ao usar a anotação @Autowired em diferentes partes de uma classe marcada com @Component?

sobes.tech IA

Resposta da IA

Sim, ao usar a anotação @Autowired no Spring Framework para injeção de dependências numa classe marcada como @Component, por padrão é criado uma única instância do componente (escopo Singleton). Isto significa que em diferentes locais da classe, onde o mesmo componente é injetado através de @Autowired, será utilizada a mesma instância.

Por exemplo:

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

    @Autowired
    private MyRepository repo2;

    public void doSomething() {
        // repo1 e repo2 referenciam a mesma instância de MyRepository
    }
}

Assim, o Spring gere o ciclo de vida dos componentes e garante a reutilização de uma mesma instância, a menos que seja indicado o contrário (por exemplo, com a anotação @Scope).