Curso
Aqui você aprenderá como aplicar a CDI, API para injeção de dependências, em um projeto Java web criado com a JSF, a Java Server Faces. Neste contexto, a JSF fornecerá a infraestrutura necessária para a criação de uma aplicação web MVC e a CDI permitirá um menor acoplamento entre as classes da aplicação ao disponibilizar a injeção de dependências. Partindo de um projeto pronto você verá passo a passo como utilizar as anotações do pacote javax.inject para permitir integrar as funções do Managed Bean à página, através da Expression Language, bem como os fundamentos da CDI, como controlar o ciclo de vida dos objetos, criar métodos produtores e também qualificadores. Ao final deste curso você poderá comparar as versões com e sem injeção de dependências do mesmo código e tirar as suas próprias conclusões sobre a utilização da CDI.
Esse curso inclui:
Suporte em tempo real
Certificado
Carga horária:
10 horas
Aprenderemos neste curso como utilizar a CDI. Teremos como cenário para a aplicação desse conjunto de serviços uma aplicação Java web escrita com a JSF. Nesta aula em especial conversamos sobre a importância da CDI para o programador Java.
A CDI é uma API secundária, o que significa dizer que precisamos de um código sobre o qual possamos aplicá-la. Tratamos deste assunto neste vídeo, apresentando a aplicação da qual partiremos, implementando injeção de dependências com a CDI.
A configuração da CDI depende do servidor web utilizado. Em um ambiente Java EE temos quase tudo o que precisamos, incluindo uma versão da CDI disponível no ambiente de produção. No caso do Tomcat dependemos de passos adicionais, apresentados aqui.
Apesar da JSF possibilitar a IoC/DI, cada vez mais a CDI tem sido apontada como uma referência para este fim. Utilizar as anotações de ambas as APIs em um mesmo projeto pode levar ao mau funcionamento da aplicação. Veja aqui como evitá-los.
Veremos agora um conceito fundamental quando trabalhamos com a CDI, os métodos produtores. A partir desses métodos, podemos disponibilizar objetos de um determinado tipo para toda a aplicação, padronizando e encapsulando a sua construção.
A anotação @Inject é utilizada para injetar dependências. Dessa forma, substituiremos a inicialização dos membros nas classes da aplicação por suas declarações precedidas desta anotação.
Um erro muito comum ao utilizarmos a CDI é a definição de duas formas diferentes para a criação de objetos do mesmo tipo, mas customizados de maneiras distintas. Veja como identificar, bem como resolver esse problema com os qualificadores da CDI.
Agora que concluímos a criação das anotações qualificadoras, veremos como utilizá-las na aplicação para determinar qual método produtor deve ser utilizado para iniciar um objeto.
Além de gerenciar a criação de objetos, com a CDI também podemos descrever como eles devem ser liberados da memória. Esse processo é implementado na aplicação de forma semelhante aos produtores, através da criação de métodos especialistas.
Nesta aula faremos o teste final da aplicação a fim de comprovar se, após a refatoração, o seu comportamento é o mesmo. Aproveitamos para demonstrar o quão desacoplado um código pode ser quando utilizamos a CDI em um projeto.
Linguagem Java: Hello World!
Linguagem Java: tipos de dados
Linguagem Java: Controle de Fluxo