O Spring é o principal concorrente da especificação Java EE. Com uma plataforma muito estável e com integração fina entre todas as suas extensões, fornece um ambiente muito propício para que o programador foque nas regras de negócio e esqueça dos problemas de infraestrutura.
Durante o livro, será construída uma aplicação baseada na loja da Casa do Código e você terá a chance de utilizar diversas das funcionalidades e integrações providas pelo framework. Usaremos o Spring MVC como alicerce da nossa aplicação web e para implementar todas as funcionalidades, utilizaremos diversas integrações, como: Spring JPA, para facilitar o acesso ao banco de dados; Spring Security, para segurança da aplicação; diferenciação de ambientes com a parte de Profiles; respostas assíncronas para melhorarmos a escalabilidade; e ainda detalhes, como cache e suporte às requisições, seguindo o estilo REST.
Tudo isso sem uma linha de XML, todas configurações serão feitas baseadas em anotações e código Java.
Содержание
1 — Introdução
1.1 — Por que o Spring MVC
1.2 — A margem da especificação
1.3 — Comece a aventura
1.4 — Público-alvo
1.5 — Código-fonte
1.6 — Pedindo ajuda
2 — Começando o projeto
2.1 — Configuração básica e criação do projeto
2.2 — Acessando o primeiro endereço
2.3 — Habilitando o Spring MVC
2.4 — Configurando a pasta com as páginas
2.5 — Um pouco por dentro do framework
2.6 — Conclusão
3 — Cadastro de produtos
3.1 — Formulário de cadastro
3.2 — Lógica de cadastro
3.3 — Gravando os dados no banco de dados
3.4 — Configurando a JPA com o Hibernate
3.5 — Habilitando o controle transacional
3.6 — Conclusão
4 — Melhorando o cadastro e a listagem
4.1 — Recebendo uma lista de valores no formulário
4.2 — Disponibilizando objetos na view
4.3 — Listando os produtos
4.4 — Melhor uso dos verbos HTTP
4.5 — Modularização das URLs de acesso
4.6 — Forward x Redirect
4.7 — Parâmetros extras nos redirects
4.8 — Conclusão
5 — Validação e conversão de dados
5.1 — Validação básica
5.2 — Exibindo os erros
5.3 — Exibindo as mensagens de erro de maneira amigável
5.4 — Mantendo os valores no formulário
5.5 — Integração com a Bean Validation
5.6 — Convertendo a data
5.7 — Conclusão
6 — Upload de arquivos
6.1 — Recebendo o arquivo no Controller
6.2 — Salvando o caminho do arquivo
6.3 — Configurações necessárias
6.4 — Gravando os arquivos fora do servidor web
6.5 — Conclusão
7 — Carrinho de compras
7.1 — URI templates
7.2 — Carrinho de compras e o escopo de Sessão
7.3 — Exibindo os itens do carrinho
7.4 — Conclusão
8 — Retornos assíncronos
8.1 — Executando operações demoradas assincronamente
8.2 — Deffered Result e um maior controle sobre a execução assíncrona
8.3 — Conclusão
9 — Melhorando performance com Cache
9.1 — Cacheando o retorno dos métodos dos controllers
9.2 — E quando tiverem novos livros?
9.3 — Usando um provedor de cache mais avançado
9.4 — Conclusão
10 — Respondendo mais de um formato
10.1 — Expondo os dados em outros formatos
10.2 — Content negotiation e outros View Resolvers
10.3 — Curiosidade sobre o objeto a ser serializado
10.4 — Conclusão
11 — Protegendo a aplicação
11.1 — Configurando o Spring Security
11.2 — Garantindo a autenticação
11.3 — Configuração da fonte de busca dos usuários
11.4 — Cross-site request forgery
11.5 — Customizando mais alguns detalhes
11.6 — Exibindo o usuário logado e escondendo trechos da página
11.7 — Conclusão
12 — Organização do layout em templates
12.1 — Templates
12.2 — Deixando o template ainda mais flexível
12.3 — Conclusão
13 — Internacionalização
13.1 — Isolando os textos em arquivos de mensagens
13.2 — Accept-Language header
13.3 — Passando parâmetros nas mensagens
13.4 — Deixe que o usuário defina a língua
13.5 — Conclusão
14 — Testes automatizados
14.1 — Testes de integração no DAO
14.2 — Utilize profiles e controle seu ambiente
14.3 — Testes do controller
14.4 — Conclusão
15 — Outras facilidades
15.1 — Resolvendo o problema gerado pelo Lazy Load
15.2 — Liberando acesso a recursos estáticos da aplicação
15.3 — Enviando e-mail
15.4 — Conclusão
16 — Deploy da aplicação
16.1 — Configurando o Maven para o Heroku
16.2 — Qual banco será usado no Heroku
16.3 — Nova aplicação no Heroku
16.
Об авторе
Alberto Souza é Bacharel em Ciência da Computação pela Universidade Salvador e desenvolvedor desde 2005, tendo participado de muitos projetos web e experimentado diversas linguagens. Participa de projetos open source como o Stella e VRaptor. Possui a certificação SCJP e trabalha como desenvolvedor e instrutor pela Caelum. Seu Twitter é @alberto_souza.