Componentes Reutilizáveis em Java com Reflexão e Anotações

Eduardo Guerra

*Você terá acesso às futuras atualizações do livro.

Conteúdo

Muitos dos recursos providos pelos frameworks e componentes mais utilizados na indústria extrapolam os simples conceitos da Orientação a Objetos e fazem uso de reflexão e anotações. A utilização dessas poderosas ferramentas pode fazer uma grande diferença, com potencial de aumentar a produtividade do time e melhorar a estrutura do código.

Neste livro, o uso de reflexão e anotações é abordado por completo, indo desde o funcionamento da API até boas práticas em sua utilização. Além disso, o livro também fala sobre ferramentas de código aberto, manipulação de bytecode e as novidades sobre reflexão do Java 8. Suba de nível em suas habilidades de programação aprendendo essa técnica que vai lhe permitir escrever códigos extremamente flexíveis.

Saiba o que você vai aprender

 

Sumário

  • 1 Conhecendo a Reflexão
  • 1.1 Ainda falta alguma coisa na orientação a objetos?
  • 1.2 Reflexão, muito prazer!
  • 1.3 O primeiro contato com a API Reflection
  • 1.4 Usar reflexão tem um preço?
  • 1.5 Considerações finais
  • 2 Java Reflection API
  • 2.1 Obtendo informações sobre as classes
  • 2.2 Trabalhando com classes
  • 2.3 Manipulando objetos
  • 2.4 Procurando métodos e atributos para validação
  • 2.5 Coisas que podem dar errado
  • 2.6 Considerações finais
  • 3 Metadados e Anotações
  • 3.1 Definição de metadados
  • 3.2 Criando anotações
  • 3.3 Lendo anotações em tempo de execução
  • 3.4 Limitações das anotações
  • 3.5 Mapeando parâmetros de linha de comando para uma classe
  • 3.6 Considerações finais
  • 4 Proxy Dinâmico
  • 4.1 O que é um proxy?
  • 4.2 Proxy dinâmico com a API Reflection
  • 4.3 Gerando a implementação de uma interface
  • 4.4 Proxy de classes com CGLib
  • 4.5 Consumindo anotações em proxies
  • 4.6 Outras formas de interceptar métodos
  • 4.7 Considerações finais
  • 5 Testando classes que usam Reflexão
  • 5.1 Variando estrutura da classe para teste
  • 5.2 Teste de proxies dinâmicos
  • 5.3 Testando a configuração de metadados
  • 5.4 Gerando classes com ClassMock
  • 5.5 Considerações finais
  • 6 Práticas no uso de anotações
  • 6.1 Mais de uma anotação do mesmo tipo
  • 6.2 Reduzindo a quantidade de configurações
  • 6.3 Expressões em anotações
  • 6.4 Associando comportamento a anotação
  • 6.5 Mapeamento de anotações
  • 6.6 Considerações finais
  • 7 Consumindo e processando metadados
  • 7.1 Componente base para o exemplo
  • 7.2 Separando a leitura do processamento de metadados
  • 7.3 Estendendo a leitura de metadados
  • 7.4 Tornando os metadados extensíveis
  • 7.5 Camadas de processamento de metadados
  • 7.6 Considerações finais
  • 8 Ferramentas: indo além na reflexão
  • 8.1 Manipulando beans com BeanUtils
  • 8.2 Interfaces fluentes para reflexão
  • 8.3 Procurando por classes
  • 8.4 Inserindo e substituindo anotações com AspectJ
  • 8.5 Considerações finais
  • 9 Manipulação de bytecode
  • 9.1 Entendendo o bytecode
  • 9.2 Entendendo o ASM
  • 9.3 Quando o bytecode pode ser alterado?
  • 9.4 Criando um bean a partir de um mapa
  • 9.5 Data da última modificação de um objeto
  • 9.6 Considerações finais
  • 10 Reflexão no Java 8
  • 10.1 Acessando nomes de parâmetros
  • 10.2 Múltiplas anotações
  • 10.3 Anotações de Tipo
  • 10.4 Reflexão e expressões lambda
  • 10.5 Considerações finais
  • 11 Truques da API de reflexão
  • 11.1 Quem me chamou?
  • 11.2 Recuperando tipos genéricos com reflexão
  • 11.3 Acessando membros privados
  • 11.4 API Method Handle
  • 11.5 Considerações finais
  • 12 Palavras finais

Autor

Eduardo Guerra

Eduardo Guerra é desenvolvedor de frameworks, editor-chefe da revista MundoJ e pesquisador do Instituto Nacional de Pesquisas Espaciais (INPE). Foi professor do Instituto Tecnológico de Aeronáutica (ITA), onde concluiu sua graduação, mestrado e doutorado. Suas pesquisas concentram-se nas áreas de design, arquitetura e teste de software. Possui diversas certificações da plataforma Java e experiência como arquiteto de software. Participa de projetos de frameworks open-source, como SwingBean, Esfinge e ClassMock. Ele acredita que um bom software faz-se mais com criatividade do que com código e vive em busca de melhores formas para seu desenvolvimento. Está no Twitter como @emguerra.

Dados do produto

Número de páginas:
402
ISBN:
978-85-66250-50-3
Data publicação:
02/2014

Compartilhe!

Compartilhe no Facebook Compartilhe no Twitter