© casa do código - s3.amazonaws.com · livros para o programador rua vergueiro, 3185 - 8º andar...

7

Upload: hathien

Post on 18-Dec-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

© Casa do CódigoTodos os direitos reservados e protegidos pela Lei nº9.610, de 10/02/1998.Nenhuma parte deste livro poderá ser reproduzida, nem transmitida, sem auto-rização prévia por escrito da editora, sejam quais forem os meios: fotográficos,eletrônicos, mecânicos, gravação ou quaisquer outros.

Casa do CódigoLivros para o programadorRua Vergueiro, 3185 - 8º andar04101-300 – Vila Mariana – São Paulo – SP – Brasil

Casa do Código Sumário

Sumário

� Antes de falar de CDI... ��.� Boas práticas de orientação a objetos . . . . . . . . . . . . . . . . . . . ��.� Lidando com o acoplamento . . . . . . . . . . . . . . . . . . . . . . . . ��.� Evolução das ferramentas de gestão de dependência . . . . . . . . . . ���.� O bom e velho arquivo properties . . . . . . . . . . . . . . . . . . . . . ���.� Buscando as dependências com Spring e XML . . . . . . . . . . . . . ���.� Buscando as dependências com Seam e anotações . . . . . . . . . . . ���.� De onde vimos? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ��

� O que é e para que serve a CDI ���.� Para onde vamos? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ���.� Evitando que a complexidade do código sempre aumente . . . . . . . ���.� Introdução à injeção de dependências . . . . . . . . . . . . . . . . . . ���.� A motivação da CDI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ���.� O que é e para que serve uma especi�cação? . . . . . . . . . . . . . . . ���.� A CDI é só para Java EE mesmo? . . . . . . . . . . . . . . . . . . . . . ��

� Iniciando um projeto com CDI ���.� Olá CDI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ���.� O que é um pacote CDI? . . . . . . . . . . . . . . . . . . . . . . . . . . ���.� Usando injeção em propriedades, construtores e métodos inicializa-

dores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ���.� As formas de se injetar dependências . . . . . . . . . . . . . . . . . . . ���.� Recapitulando . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ��

i

Sumário Casa do Código

� Resolvendo dependências com tipagem forte ���.� Lidando com a ambiguidade nas dependências . . . . . . . . . . . . . ���.� Os quali�cadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ���.� Alternatives: eliminando ambiguidade e tornando um bean opcional ���.� Prioridade: novidade da CDI �.�, parte do Java EE � . . . . . . . . . . ���.� Beans nomeados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ���.� Trabalhando com herança entre beans . . . . . . . . . . . . . . . . . . ���.� Restringindo o tipo dos beans . . . . . . . . . . . . . . . . . . . . . . . ���.� Resolução de dependência sob demanda e lookup programático . . . ���.� Resumo do funcionamento da resolução de dependências . . . . . . . ��

� O ciclo de vida dos objetos gerenciados pela CDI ���.� Métodos produtores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ���.� Escopos da CDI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ���.� Escopo de requisição com @RequestScoped . . . . . . . . . . . . . . . ���.� Escopo de sessão com o @SessionScoped . . . . . . . . . . . . . . . . . ���.� @ApplicationScoped: O maior escopo possível . . . . . . . . . . . . . ���.� @ConversationScoped: Você criando seu próprio escopo . . . . . . . ����.� @Dependent: O escopo padrão do CDI . . . . . . . . . . . . . . . . . ����.� Métodos �nalizadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . ���

� Interceptors e Decorators ����.� Implementando requisitos transversais com interceptors . . . . . . . . ����.� Interceptadores de ciclo de vida . . . . . . . . . . . . . . . . . . . . . . ����.� Estendendo um bean existente com Decorators . . . . . . . . . . . . . ����.� Vinculação dinâmica entre o objeto decorado e seu decorador . . . . ���

� De�nindo Estereótipos e diminuindo o acoplamento utilizando Eventos ����.� De�nindo estereótipos . . . . . . . . . . . . . . . . . . . . . . . . . . . ����.� Utilizando Eventos para obter um baixíssimo acoplamento . . . . . . ����.� Observadores síncronos de eventos . . . . . . . . . . . . . . . . . . . . ����.� Eventos e quali�cadores . . . . . . . . . . . . . . . . . . . . . . . . . . . ����.� Observadores assíncronos de eventos . . . . . . . . . . . . . . . . . . . ����.� Injetando dependências nos observadores . . . . . . . . . . . . . . . . ���

ii

Casa do Código Sumário

� A relação da CDI com as demais especi�cações Java EE ����.� Relação entre CDI e EJB/JPA . . . . . . . . . . . . . . . . . . . . . . . . ����.� Relação entre CDI e JSF . . . . . . . . . . . . . . . . . . . . . . . . . . . ����.� Relação entre CDI e JMS . . . . . . . . . . . . . . . . . . . . . . . . . . ����.� Empacotando as melhorias . . . . . . . . . . . . . . . . . . . . . . . . . ���

� Extensões CDI ����.� Do Seam à CDI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ����.� Extensões portáveis disponíveis . . . . . . . . . . . . . . . . . . . . . . ����.� Criando nossas extensões . . . . . . . . . . . . . . . . . . . . . . . . . . ����.� Extensão portável: usando convenção em vez de con�guração . . . . ����.� Extensão não portável: eventos assíncronos fora do Java EE . . . . . . ���

�� Executando CDI em diferentes ambientes �����.� Executando CDI em servlet containers . . . . . . . . . . . . . . . . . . �����.� Executando CDI a partir de uma classe main . . . . . . . . . . . . . . �����.� E como testar uma aplicação CDI? . . . . . . . . . . . . . . . . . . . . �����.� Desenvolvendo testes de integração com persistência . . . . . . . . . . ���

Índice Remissivo ���Versão: ��.�.��

iii