terça-feira, 10 de outubro de 2017

Usando CDI em uma aplicação Java SE

CDI é uma API Java que permite que você delegue as relações entre as classes para um container. Dessa forma você não instancia classes manualmente, mas um container o faz trazendo flexibilidade e performance para a sua aplicação. É também conhecido como uma API de costura entre as camadas de uma aplicação.
No blog Aprendendo JavaEE fizemos uma aplicação muito simples com CDI.

Na versão 2.0 é possível usar CDI em uma aplicação que só tem a API padrão do Java, o chamado Java SE. Nessa postagem vamos mostrar como fazemos isso. 


Configuração do projeto


Vamos usar Maven. No diretório src/main/resources criamos mais um chamado META-INF com um arquivo chamado beans.xml. Esse arquivo permite declarar os beans do CDI, mas vamos deixar ele vazio para que simplesmente o CDI reconheça essa aplicação como uma aplicação CDI.



No pom.xml declaramos só uma dependência, veja:



A aplicação de teste


Vamos criar uma interface muito simples que faz uma saudação:



Imagine que poderíamos ter diversas implementações dela fazendo diversos tipo de saudações, mas vamos criar uma classe de implementação muito simples:



Agora vamos usar a mesma interface em uma classe que não vai ter nenhuma referência para a implementação. Quem vai fazer essa ligação é o CDI. Veja a classe App que usa a Greeter:



O último passo é inicializar o container CDI e pegar uma instância de App para que possamos utilizar, veja:


Ao rodar o código podemos ver que o método foi executado com sucesso:



É isso! Mostramos como se usa CDI em uma aplicação padrão do Java. O código está em nosso github. Um outro recurso para aprender é esse vídeo do Adam Bien (em inglês):

Nenhum comentário:

Postar um comentário