• Nenhum resultado encontrado

Casa do Código Livros para o programador Rua Vergueiro, º andar Vila Mariana São Paulo SP Brasil

N/A
N/A
Protected

Academic year: 2021

Share "Casa do Código Livros para o programador Rua Vergueiro, º andar Vila Mariana São Paulo SP Brasil"

Copied!
10
0
0

Texto

(1)
(2)

© 2013, Casa do Código

Todos 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ódigo Livros para o programador Rua Vergueiro, 3185 - 8º andar

(3)
(4)
(5)

Casa do Código

Prefácio

Neste livro trataremos do Spring, um framework usado no desenvolvimento de apli-cações corporativas baseado nos conceitos de inversão de controle, injeção de depen-dências e AOP. São palavras que muitas vezes soam alienígenas e muitas vezes não adquirem signi�cado na mente do desenvolvedor. Este livro possui dois objetivos: clari�car o signi�cado por trás destes conceitos e expor como sua aplicação acaba por gerar sistemas de qualidade superior, mais fáceis de manter e que, com isto, acabam por aumentar o valor agregado do nosso trabalho.

Mais que um framework para desenvolvimento de aplicações corporativas, vejo o Spring como uma ferramenta disciplinadora. Conforme o desenvolvedor vai se ha-bituando ao seu modo de trabalho começa a valorizar ainda mais qualidades como uma melhor modularização do sistema, escrita de código mais simples, reaprovei-tamento de código legado e tecnologias já existentes, além da criação de interfaces mais signi�cativas. No Spring podemos ver de forma nítida o núcleo da arquitetura de sistemas que é justamente o modo como componentes de so�ware interagem en-tre si de uma maneira explícita. Para os que anseiam trilhar este caminho, é também um auxílio em sua formação.

O livro é dividido em duas partes. Na primeira tratamos dos conceitos em que se baseia o Spring. Veremos o que motivou sua criação, o que o framework trouxe de ganho para o desenvolvimento de aplicações corporativas e como são aplicados no núcleo do Spring que é seu container de inversão de controle/injeção de depen-dências. Com isto é fornecida ao leitor uma base sólida que pode ser aplicada tanto dentro quanto fora do contexto do Spring.

Na segunda parte temos uma abordagem mais mão na massa. Veremos aplica-ções do framework em situaaplica-ções reais do dia a dia, como por exemplo na camada de persistência, controle transacional, segurança e também criaremos uma aplicação web real baseada no Spring MVC. A grosso modo, pode-se dizer que quando escrevi a primeira parte do livro incluí o conteúdo que gostaria muito de ter aprendido na i

(6)

Casa do Código faculdade, enquanto na segunda estão as informações que teriam me poupado muito tempo no meu cotidiano como desenvolvedor.

A quem se destina

Este livro se destina a todos aqueles que já possuem algum conhecimento da pla-taforma Java, que já terão uma bagagem mais rica para entender o que tento explicar neste texto. Caso não seja o seu caso, tudo bem: os três primeiros capítulos contém o conceitual que você poderá aplicar em práticamente qualquer plataforma.

Agradecimentos

Agradeço à con�ança e ao apoio (isto sem mencionar a paciência!) dos meus editores Paulo Silveira e Adriano Almeida sem os quais este livro não seria possí-vel. Claro que eles não agiram sozinhos, Nanna - minha esposa - é fundamental por ter conseguido me aguentar neste processo de tradução do Springolês para o Portu-guês. Também preciso agradecer aos meus colegas, em especial ao Matheus Eduardo Moreira e o Felipe Zampa.

Os leitores tiveram participação extremamente importante: após o lançamento da versão beta �quei maravilhado com a quantidade de pessoas interessadas neste material, o que me motivou a concluí-lo mais rápido e com a melhor qualidade pos-sível. Alguns entraram em contato direto comigo com dicas e sugestões, e a estes ofereço meu agradecimento especial: Renan Reis, Rodrigo Monteiro, Adriano Faria Alves e Willardy Tyrone de Oliveira. E ei, também não posso deixar de agradecer ao apoio do Rodrigo Fernandes Moreira e Gabriela Corrêa da Eteg. Finalmente, para evitar que eu sofra consequências imprevisíveis, à minha mãe, Selma Weissmann. Infelizmente o espaço deste prefácio é limitado para conter todas as pessoas a quem devo agradecer, assim como minha memória. Caso seu nome me tenha escapado, por favor desculpe este mal agradecido: com certeza encontrarei alguma forma de retribuí-lo no futuro ok?

Muito obrigado a todos vocês.

(7)

Casa do Código Sumário

Sumário

Os conceitos por trás do Spring

� Lide com o alto acoplamento de forma elegante

�.� Problema essencial: acoplamento . . . �

�.� A famigerada inversão . . . ��

� Conheça o Spring Framework ��

�.� Por que criaram o Spring? . . . ��

�.� O Mundo dos objetos em ���� . . . ��

�.� Os problemas do EJB em ���� . . . ��

�.� Alternativas começam a surgir: IoC/DI e AOP . . . ��

�.� Container: o sujeito que torna tudo isto possível . . . ��

�.� Do início ao �m de um objeto, entenda o ciclo de vida . . . ��

�.� Spring em partes . . . ��

�.� O Container . . . ��

�.� Trabalhando com AOP e Aspects . . . ��

�.�� Instrumentação de código . . . ��

�.�� Acesso a dados e integração . . . ��

�.�� Aplicações na Web com o Spring . . . ��

�.�� E ainda mais componentes!. . . ��

�.�� Resumindo . . . ��

� Conhecendo o Container ��

�.� Preparando seu ambiente de desenvolvimento. . . ��

�.� Nosso sistema de exemplo . . . ��

�.� Declarando beans . . . �� iii

(8)

Sumário Casa do Código

�.� Instanciação por factory method . . . ��

�.� Mapeando atributos complexos . . . ��

�.� Usando o container . . . ��

�.� O ciclo de vida do container . . . ��

�.� Escopos . . . ��

�.� Instanciação tardia. . . ��

�.�� Aproveitando o ciclo de vida dos beans . . . ��

�.�� Quando o bean conhece seu container . . . ��

�.�� Modularizando a con�guração. . . ��

�.�� Aplicando herança na de�nição dos beans . . . ��

�.�� Spring Expression Language (SpEL). . . ��

�.�� Resumindo . . . �� � Minimizando o XML com autowiring, anotações e Java ��

�.� Autowiring: automatizando a injeção de dependências. . . ��

�.� Vantagens e limitações da injeção automática . . . ��

�.� Facilitando ainda mais com Anotações . . . ��

�.� Con�guração programática com Java . . . ��

�.� XML, anotações ou con�guração programática? . . . �� � AOP: adicionando novos comportamentos aos beans ��

�.� Como identi�car os interesses transversais . . . ��

�.� Entendendo AOP . . . ��

�.� Preparando o ambiente de desenvolvimento . . . ���

�.� A implementação do primeiro aspecto . . . ���

�.� Entenda os advices. . . ���

�.� Use os around advices . . . ���

�.� Use o advice before . . . ���

�.� E onde entra o Proxy nessa história? . . . ���

�.� Entenda a execução . . . ���

�.�� Um uso interessante para AOP: Log de erros. . . ���

�.�� Declare aspectos com anotações AspectJ e esquemas XML . . . ���

�.�� A sintaxe AspectJ de declaração de point cuts . . . ���

�.�� Concluindo com um resumão conceitual. . . ��� iv

(9)

Casa do Código Sumário

Spring Framework na prática ���

� Colocando a mão na massa ���

�.� Obtendo o código fonte . . . ���

�.� Con�gure seu ambiente de desenvolvimento. . . ���

�.� O que vêm por ai. . . ���

� Acesso a dados ���

�.� DAO: no centro da mentalidade Spring. . . ���

�.� Conecte-se ao banco de dados . . . ���

�.� De volta ao DAO: o problema com as exceções . . . ���

�.� Templates: acabe com o código repetido . . . ���

�.� O trabalho com JDBC. . . ���

�.� O trabalho com o Hibernate . . . ���

�.� Integre com a JPA . . . ���

�.� Concluindo . . . ���

� Desenvolva aplicações web com Spring MVC ���

�.� O que iremos desenvolver . . . ���

�.� A base para tudo: MVC . . . ���

�.� Iniciando o Projeto . . . ���

�.� Dispatcher Servlet: o maestro por trás do Spring MVC. . . ���

�.� Olá mundo com Spring MVC . . . ���

�.� O primeiro controlador útil do Spring Fórum . . . ���

�.� Autenticando usuários: como redirecionar e lidar com a sessão HTTP���

�.� De�nindo qual método HTTP usar . . . ���

�.� Recebendo parâmetros de entrada. . . ���

�.�� O que é aquele “redirect:/” retornado pela action login? . . . ���

�.�� Como lidar com a sessão do usuário e a classe ModelAndView . . . . ���

�.�� Cadastrando usuários: submissão de formulários . . . ���

�.�� Submetendo o formulário de cadastro . . . ���

�.�� Melhorando a camada de visualização com o Tiles . . . ���

�.�� Lidando com conteúdo estático . . . ���

�.�� Ainda há mais de SpringMVC por vir. . . ��� v

(10)

Sumário Casa do Código

� Ações recorrentes com o SpringMVC ���

�.� Faça a validação de formulários com o Hibernate Validator . . . ���

�.� Envie seus avatares para o servidor com upload de arquivos. . . ���

�.� De�na o corpo da resposta . . . ���

�.� Faça requisições assíncronas com AJAX . . . ���

�.� Concluindo com uma surpresa . . . ���

�� Gerenciando transações ���

��.� Entendendo as transações . . . ���

��.� As políticas transacionais . . . ���

��.� Preparando o ambiente de desenvolvimento . . . ���

��.� Como o Spring implementa o suporte a transações . . . ���

��.� Transações programáticas . . . ���

��.� Declarando transações . . . ���

��.� Concluindo . . . ��� �� Protegendo nossa aplicação com Spring Security ���

��.� Entendendo autenticação e autorização. . . ���

��.� Os módulos do Spring Security . . . ���

��.� Con�gurando os �ltros de acesso . . . ���

��.� Con�gurando o contexto do Spring . . . ���

��.� O formulário de login . . . ���

��.� Escrevendo um provedor de autenticação . . . ���

��.� Usando SpEL . . . ���

��.� Protegendo invocação de métodos em beans. . . ���

��.� Tags . . . ��� ��.�� Conclusão. . . ��� �� E ai, gostou? ��� Bibliogra�a ��� Versão: ��.�.�� vi

Referências

Documentos relacionados

Caso seja lançada uma atualização do Play, e você queira atualizar, renomeie o diretório C:\play\ para C:\play-old\ e descompacte a nova versão em C:\play\. Instalação

PROCURADORIA GERAL DO ESTADO, Maceió/AL, 03 de fevereiro de 2017. N° 0244/2017 - Aprovo o Despacho PGE-PLIC-CD nº 0305/2017, da lavra da Coordenação da Procuradoria

O gráfico demonstra também que as mulheres aderem à ginástica de academia em busca de condicionamento físico, pois as mesmas possuem o hábito de praticar

se as opções abaixo e assinale a alternativa correta que apresenta uma função/role que não está disponível nesta versão do sistema operacional. I- Servidor DHCP

eu amo rosana eu beijo rosana eu chumbo rosana eu desenho rosana eu escuto rosana eu filmo rosana eu guardo rosana eu homenageio rosana eu imagino rosana eu junto rosana eu

Na África Subsaariana, que apresenta a mais alta prevalência de infecção pelo HIV do mundo, estudos apontam o álcool como um fator de risco para contami- nação 12 , pois a prática

Repare que a recomendação é bem favorável à aplicação do progressive enhan- cement: mesmo que o navegador não entenda exatamente o que estamos querendo dizer, ele vai mostrar

Além disso, escrever testes de unidade forçará o desenvolvedor a escrever um código de maior qualidade pois, como veremos ao longo do livro, para escrever bons testes de unidade,