Injeção de Dependência (DI) é um padrão de design que remove a dependência do código de programação para que seja fácil gerenciar e testar o aplicativo. A injeção de dependência torna nosso código de programação fracamente acoplado. Para entender melhor o DI, vamos primeiro entender a pesquisa de dependência (DL):
Pesquisa de dependência
A Pesquisa de Dependência é uma abordagem onde obtemos o recurso após a demanda. Pode haver várias maneiras de obter o recurso, por exemplo:
conversão de tipo e conversão de tipo em java
A obj = new AImpl();
Desta forma, obtemos o recurso (instância da classe A) diretamente pela nova palavra-chave. Outra maneira é o método de fábrica:
A obj = A.getA();
Dessa forma, obtemos o recurso (instância da classe A) chamando o método estático de fábrica getA().
Alternativamente, podemos obter o recurso por JNDI (Java Naming Directory Interface) como:
string substring java
Context ctx = new InitialContext(); Context environmentCtx = (Context) ctx.lookup('java:comp/env'); A obj = (A)environmentCtx.lookup('A');
Pode haver várias maneiras de obter o recurso para obter o recurso. Vamos ver o problema nesta abordagem.
Problemas de pesquisa de dependência
Existem principalmente dois problemas de pesquisa de dependência.
Injeção de dependência
A Injeção de Dependência é um padrão de design que remove a dependência dos programas. Nesse caso, fornecemos as informações de uma fonte externa, como um arquivo XML. Isso torna nosso código fracamente acoplado e mais fácil de testar. Nesse caso, escrevemos o código como:
class Employee{ Address address; Employee(Address address){ this.address=address; } public void setAddress(Address address){ this.address=address; } }
Nesse caso, a instância da classe Address é fornecida por uma fonte externa, como um arquivo XML, pelo construtor ou pelo método setter.
Duas maneiras de realizar injeção de dependência no framework Spring
A estrutura Spring fornece duas maneiras de injetar dependência
- Por construtor
- Pelo método Setter
Próximos tópicos em injeção de dependência Spring
Injeção de dependência por construtorVamos ver como podemos injetar dependência por construtor.
protocolo udp
Injeção de dependência pelo método setter
Vamos ver como podemos injetar dependência pelo método setter.