CDI Integre as dependências e contextos do seu código Java
Gilliard Cordeiro
Conteúdo
Uma das especificações mais atuais do Java, a especificação CDI (Context and Dependency Injection) traz um enorme poder no código que o desenvolvedor escreve, possibilitando para a aplicação recursos de injeção de dependência e ciclo de vida com escopos e contextos, de forma padronizada para o mundo Java e Java EE.
Neste livro, Gilliard Cordeiro mostra como tirar vantagem dessa poderosíssima especificação, através do uso da sua implementação de referência, o Weld, ensinando você a criar seus componentes; injetá-los em qualquer classe; integrar o CDI com outras especificações do Java EE, como a JPA e o JSF; além de desvendar os recursos avançados da especificação, aprendendo a criar interceptors, decorators e todos os recursos da CDI. Você ainda aprende a desacoplar seu código e ter um design mais elegante para suas classes.
Sumário
- 1 Antes de falar de CDI...
- 1.1 Boas práticas de orientação a objetos
- 1.2 Lidando com o acoplamento
- 1.3 Evolução das ferramentas de gestão de dependência
- 1.4 O bom e velho arquivo properties
- 1.5 Buscando as dependências com Spring e XML
- 1.6 Buscando as dependências com Seam e anotações
- 1.7 De onde viemos?
- 2 O que é e para que serve a CDI
- 2.1 Para onde vamos?
- 2.2 Evitando que a complexidade do código sempre aumente
- 2.3 Introdução à injeção de dependências
- 2.4 A motivação da CDI
- 2.5 O que é e para que serve uma especificação?
- 2.6 A CDI é só para Java EE mesmo?
- 3 Iniciando um projeto com CDI
- 3.1 Olá CDI
- 3.2 O que é um pacote CDI?
- 3.3 Usando injeção em propriedades, construtores e métodos inicializadores
- 3.4 As formas de se injetar dependências
- 3.5 Recapitulando
- 4 Resolvendo dependências com tipagem forte
- 4.1 Lidando com a ambiguidade nas dependências
- 4.2 Os qualificadores
- 4.3 Alternatives: eliminando ambiguidade e tornando um bean opcional
- 4.4 Prioridade: novidade da CDI 1.1, parte do Java EE 7
- 4.5 Beans nomeados
- 4.6 Trabalhando com herança entre beans
- 4.7 Restringindo o tipo dos beans
- 4.8 Resolução de dependência sob demanda e lookup programático
- 4.9 Resumo do funcionamento da resolução de dependências
- 5 O ciclo de vida dos objetos gerenciados pela CDI
- 5.1 Métodos produtores
- 5.2 Escopos da CDI
- 5.3 Escopo de requisição com @RequestScoped
- 5.4 Escopo de sessão com o @SessionScoped
- 5.5 @ApplicationScoped: O maior escopo possível
- 5.6 @ConversationScoped: Você criando seu próprio escopo
- 5.7 @Dependent: O escopo padrão do CDI
- 5.8 Métodos finalizadores
- 6 Interceptors e Decorators
- 6.1 Implementando requisitos transversais com interceptors
- 6.2 Interceptadores de ciclo de vida
- 6.3 Estendendo um bean existente com Decorators
- 6.4 Vinculação dinâmica entre o objeto decorado e seu decorador
- 7 Definindo estereótipos e diminuindo o acoplamento utilizando Eventos
- 7.1 Definindo estereótipos
- 7.2 Utilizando Eventos para obter um baixíssimo acoplamento
- 7.3 Observadores síncronos de eventos
- 7.4 Eventos e qualificadores
- 7.5 Observadores assíncronos de eventos
- 7.6 Injetando dependências nos observadores
- 8 A relação da CDI com as demais especificações Java EE
- 8.1 Relação entre CDI e EJB/JPA
- 8.2 Relação entre CDI e JSF
- 8.3 Relação entre CDI e JMS
- 8.4 Empacotando as melhorias
- 9 Extensões CDI
- 9.1 Do Seam à CDI
- 9.2 Extensões portáveis disponíveis
- 9.3 Criando nossas extensões
- 9.4 Extensão portável: usando convenção em vez de configuração
- 9.5 Extensão não portável: eventos assíncronos fora do Java EE
- 10 Executando CDI em diferentes ambientes
- 10.1 Executando CDI em servlet containers
- 10.2 Executando CDI a partir de uma classe main
- 10.3 E como testar uma aplicação CDI?
- 10.4 Desenvolvendo testes de integração com persistência
Autor

Gilliard Cordeiro
Gilliard Santos Cordeiro é Analista de Sistemas pela UFMS e especialista em Engenharia de Software pela Uniderp. É também tomador de tereré, tirador de foto, pescador e karateca amador. Iniciou tomando tereré desde muito cedo, como todo sul-mato-grossense, mas na programação só teve o primeiro contato na faculdade, em 2002. O início profissional foi em 2003, onde, como estagiário, programou em Lotus Script e um ano depois começou a desenvolver em Java. Algum tempo depois, junto com outros amigos fundou o JUGMS, que hoje organiza anualmente o Javaneiros, o maior evento de desenvolvedores de Mato Grosso do Sul. O gosto pela pesca e pelo karatê veio depois de "velho", aos 28 anos. Foi coordenador de novas tecnologias (P&D) no Tribunal de Justiça de MS, onde atualmente é diretor da área de desenvolvimento de sistemas. Ele mantém um blog em http://gilliard.eti.br.
Dados do produto
- Número de páginas:
- 263
- ISBN:
- 978-85-66250-18-3