Componentes Reutilizáveis em Java com Reflexão e Anotações
Eduardo GuerraConteú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.
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