CDI: Integre as dependências e contextos do seu código Java

CDI: Integre as dependências e contextos do seu código Java

Estou muito feliz em anunciar meu segundo livro, dessa vez sobre CDI. Particularmente é um assunto que gosto muito, tanto que desde antes das primeiras versões estáveis já mexia com o Weld (implementação de referência) e fiz alguns posts aqui no blog. Inclusive palestrei sobre CDI no Javaneiros 2009. Em resumo, essa é a especificação mais bacana com que já lidei, e olha que eu mexo com várias.

Nesse livro, você vê 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 outros recursos da especificação, como a criarção de 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.

O livro pode ser encontrado no site da Casa do Código, por um preço camarada assim como o livro de JSF e JPA.

Segue o conteúdo

1. Antes de falar de CDI...
   1. Boas práticas de orientação a objetos
   2. Lidando com o acoplamento
   3. Evolução das ferramentas de gestão de dependência
   4. O bom e velho arquivo properties
   5. Buscando as dependências com Spring e XML
   6. Buscando as dependências com Seam e anotações
   7. De onde vimos?
2. O que é e para que serve a CDI
   1. Para onde vamos?
   2. Evitando que a complexidade do código sempre aumente
   3. Introdução à injeção de dependências
   4. A motivação da CDI
   5. O que é e para que serve uma especificação?
   6. A CDI é só para Java EE mesmo?
3. Iniciando um projeto com CDI
   1. Olá CDI
   2. O que é um pacote CDI?
   3. Usando injeção em propriedades, construtores e métodos inicializadores
   4. As formas de se injetar dependências
   5. Recapitulando
4. Resolvendo dependências com tipagem forte
   1. Lidando com a ambiguidade nas dependências
   2. Os qualificadores
   3. Alternatives: eliminando ambiguidade e tornando um bean opcional
   4. Prioridade: novidade da CDI 1.1, parte do Java EE 7
   5. Beans nomeados
   6. Trabalhando com herança entre beans
   7. Restringindo o tipo dos beans
   8. Resolução de dependência sob demanda e lookup programático
   9. Resumo do funcionamento da resolução de dependências
5. O ciclo de vida dos objetos gerenciados pela CDI
   1. Métodos produtores
   2. Escopos da CDI
   3. Escopo de requisição com @RequestScoped
   4. Escopo de sessão com o @SessionScoped
   5. @ApplicationScoped: O maior escopo possível
   6. @ConversationScoped: Você criando seu próprio escopo
   7. @Dependent: O escopo padrão do CDI
   8. Métodos finalizadores
6. Interceptors e Decorators
   1. Implementando requisitos transversais com interceptors
   2. Interceptadores de ciclo de vida
   3. Estendendo um bean existente com Decorators
   4. Vinculação dinâmica entre o objeto decorado e seu decorador
7. Definindo Estereótipos e diminuindo o acoplamento utilizando Eventos
   1. Definindo estereótipos
   2. Utilizando Eventos para obter um baixíssimo acoplamento
   3. Observadores síncronos de eventos
   4. Eventos e qualificadores
   5. Observadores assíncronos de eventos
   6. Injetando dependências nos observadores
8. A relação da CDI com as demais especificações JavaEE
   1. Relação entre CDI e EJB/JPA
   2. Relação entre CDI e JSF
   3. Relação entre CDI e JMS
   4. Empacotando as melhorias
9. Extensões CDI
   1. Do Seam à CDI
   2. Extensões portáveis disponíveis
   3. Criando nossas extensões
   4. Extensão portável: usando convenção em vez de configuração
   5. Extensão não portável: eventos assíncronos fora do JavaEE
10. Executando CDI em diferentes ambientes
   1. Executando CDI em servlet containers
   2. Executando CDI a partir de uma classe main
   3. E como testar uma aplicação CDI?
   4. Desenvolvendo testes de integração com persistência

Não esqueça de dar seu feedback na lista do livro.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>