Olá pessoal, sou novato no mundo EJB. Alguém poderia me explicar o que é e para que server Injeção de Dependências? Pois não consegui entender o conceito… Ao invés de usar objetos da injeção eu não poderia simplesmente instancia-los normalmente ?
Abraço…
Injeção de Dependência
3 Respostas
Este texto responde suas dúvidas:
Olá pessoal, sou novato no mundo EJB. Alguém poderia me explicar o que é e para que server Injeção de Dependências? Pois não consegui entender o conceito… Ao invés de usar objetos da injeção eu não poderia simplesmente instancia-los normalmente ?
Abraço…
Existe “Injeção de Dependência” (DI) e “Framework de Injeção Automática de Dependencia” (Spring, guice, etc…) ADIF para abreviar
DI é um principio de OO e báciamente significa que :
- A classe não pode conter chamadas a new ela não pode decidir quem ela quer criar)
- A classe não pode ter codigo que procura outras classes
A implementação é simples. todas os objetos que o objeto precisa precisam ser passados no construtor ou setados depois da invocação do contrutor ( usando um setter). Isto é muito simples. É um regra simples.
Vc instância os objetos normalmente e os passa nos construtores dos outros , etc… Basicamente vc segue as duas regras acima.
Logo vc vai entender que var isso leva a um processo em cadeia. A classe X recebe Y que recebe Z que recebe W. Ou seja, cumprir a regra 1 é complexo.
Aqui entram os ADIF. Eles automatizam a localização, criação, configuração e controle de referencia cíclica, tudo de forma automática. Eles libertam-o de ter que dar o new inicial e construir a arvore de dependencias. Mas não o libertam da tarefa de programar seguindo as regras. Isso vc mesmo tem que fazer independentemente de usar um framework de injeção ou não.
O guice ( lê-se juice) é um framework mesmo automático que usa anotações para amarrar as coisas. O Spring tem uma outra visão com configurações xml e tal… Cria um framework de injeção é relativamente simples, mas existem algumas pegadinhas. então, é melhor usar um já pronto para começar.
Pessoal,
Obrigado pela ajuda… agora consegui entender…