Upload
hathien
View
215
Download
0
Embed Size (px)
Citation preview
© 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