Olá desenvolvedores, neste tutorial daremos início a uma série de tutoriais sobre CDI – Contexts and Dependency Injection. Assim, hoje aprenderemos como os conceitos de injeção de dependência podem ser úteis ao contexto de aplicações Java simples.
A injeção de dependência DI é parte da plataforma JAVA e pode facilitar, e muito, a organização dos componentes. E faz isso permitindo que eles existam dentro do ciclo de vida de uma aplicação com escopos bem definidos. Entenda o uso da notação “componentes” de forma abrangente.
Graças a este serviço disponibilizado pela plataforma JAVA, componentes como os beans gerenciados pelo JSF – JavaServer faces, podem ser injetados e interagir de maneira acoplada, porém flexível, disparando e observando eventos. Muito embora o CDI tenha sido criado para reduzir o acoplamento alto entre as classes, isto é, que elas estejam amarradas umas as outras de forma inflexível.
Esta inflexibilidade no acoplamento entre as classes dificultavam a manutenção, gerando erros em todo o sistema em caso de necessidade de alteração. Assim, foi para resolver este problema que a partir do Java EE6 que a especificação JSR-299 passou a ser parte integrada.
Desse modo a documentação descreve CDI como sendo uma especificação com o objetivo de unificar o modelo de componente de bean gerenciado pelo JSF com o modelo de componente EJB – Enterprise JavaBeans. Essa especificação resulta em um modelo de programação significativamente simplificado para aplicativos baseados na web.
O Enterprise JavaBeans cumpre a missão de deixar que o programador se concentre nas regras de negócio por meio da programação declarativa e serviços automáticos. E justamente por fornecer um conjunto de componentes prontos, que este modelo tem na rapidez para o desenvolvimento de soluções sua principal característica.
BENEFÍCIOS DO CDI
Entre os benefícios de se utilizar o CDI temos como já mencionado a redução do acoplamento entre as classes. O que facilita em larga medida o processo de manutenção posterior. E ainda, definição de um melhor consumo de memória, uma vez que o próprio CDI se encarregará de entregar a você o objeto pronto, promovendo ganho de performance e evitando dessa forma, que o programador incorra no risco de criar objetos desnecessariamente.
EM POUCAS PALAVRAS
Neste tutorial fomos apresentados aos conceitos e serviços disponíveis no CDI – Contexts and Dependency Injection, cujo principal objetivo é além de auxiliara na estruturação dos componentes, reduzir o acoplamento entre eles.