Sobes.tech
Junior — Middle

De que formas é possível implementar a injeção de dependências para Beans numa aplicação?

sobes.tech IA

Resposta da IA

Em Java, a injeção de dependências (Dependency Injection, DI) para Beans pode ser implementada de várias formas:

  1. Através do construtor — as dependências são passadas para o construtor da classe. Este é o método mais preferido, pois permite criar objetos imutáveis e facilita os testes.
public class Service {
    private final Repository repo;

    public Service(Repository repo) {
        this.repo = repo;
    }
}
  1. Através de setters (Setter Injection) — as dependências são definidas através de métodos setters após a criação do objeto.
public class Service {
    private Repository repo;

    public void setRepository(Repository repo) {
        this.repo = repo;
    }
}
  1. Através de campos (Field Injection) — as dependências são injetadas diretamente nos campos da classe usando anotações, por exemplo, @Autowired no Spring.
public class Service {
    @Autowired
    private Repository repo;
}
  1. Através de métodos de fábrica ou classes de configuração — a criação e ligação dos Beans ocorre em classes de configuração ou XML.

Cada método tem suas vantagens e desvantagens, mas nas aplicações modernas, geralmente usa-se a injeção via construtor ou anotações do Spring para ligação automática de dependências.