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:
- 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;
}
}
- 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;
}
}
- Através de campos (Field Injection) — as dependências são injetadas diretamente nos campos da classe usando anotações, por exemplo,
@Autowiredno Spring.
public class Service {
@Autowired
private Repository repo;
}
- 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.