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