Use o código e tenha 10% de desconto!

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

veja mais detalhes

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

Compartilhe!

Compartilhe no Facebook Compartilhe no Twitter