Java CDI —Tutorial II

Victor Osório
2 min readFeb 27, 2019

--

Essa é a continuação do tutorial de Java CDI.

Sumário

  1. Configurando, Injetando dependências e Interceptando métodos
  2. Usando Qualifiers e chamando programaticamente

Qualifiers

Agora, e se quisermos injetar diversos tipos da mesma interface? Ou o mais conhecido polimorfismo?

Imagine a situação: seu projeto tem dois tipos de banco de dados, então você para evitar possível retrabalho decide que os dois serão acessados pela mesma interface.

Você decide também que será tudo lido por reflection, assim ficará fácil criar novos clientes.

O próximo passo para habilitar o polimorfismo é criar anotações para cada tipo. Abaixo você verá as anotações para Postgres e MongoDB.

O próximo passo é escrever os clientes de cada um.

Quando for usar, a decisão de que cliente usar pode ser facilmente alterada pelo uso da notação.

Usando CDI Programaticamente

Ok, mas dá pra usar esses objetos fora do contexto de CDI?

Sim, e sim!

Quando se tem o container ativo, dá pra chamar a instanciação manualmente. Basta usar a classe CDI.

Quando precisar usar Qualifiers? Dá pra usar o CDI!

Conclusão

Com CDI e Qualifiers dá para se criar projetos dinâmicos, com o encapsulamento de logicas que não são inerentes ao lógica do negócio. Levando seus desenvolvedores a focarem na lógica do negócio, reduzindo o número de potenciais bugs.

--

--

Victor Osório

Senior Software Engineer@Openet | Java | Software Architect | Technology | Society