Importante: assista o vídeo abaixo até o final.

EU QUERO APROVEITAR ESSA OPORTUNIDADE AGORA!

Spring Framework Expert

Mais de 45 horas de videoaulas. Carga horária equivalente a 120 horas/aula.

1. Introdução
1.1. Introdução ao curso
1.2. Conhecendo o projeto do curso
1.3. Como usar o suporte
1.4. Introdução ao protocolo HTTP
1.5. Introdução ao Maven
1.6. Instalando e configurando o Eclipse
1.7. Instalando o Apache Tomcat
1.8. Iniciando o Tomcat no Eclipse
1.9. Instalando e configurando o MySQL no Mac
1.10. Instalando e configurando o MySQL no Windows
1.11. Instalando o myJrebel no Eclipse

2. Introdução ao Spring
2.1. O Spring
2.2. Spring vs Java EE
2.3. O padrão MVC
2.4. Spring MVC vs JSF
2.5. Por dentro do Spring MVC

3. Spring MVC, Thymeleaf e Bean Validation
3.1. Criando o projeto
3.2. Conhecendo o Thymeleaf
3.3. Configurando o Spring
3.4. Configurando a ViewResolver com Thymeleaf
3.5. O que fazer primeiro do MVC? M, V ou C?
3.6. Começando o cadastro de cerveja
3.7. Introdução a validação do formulário
3.8. Forward e Redirect
3.9. Desafio: Validando a descrição
3.10. Resolvendo problemas de acentuação

4. O Thymeleaf
4.1. O que é uma template engine?
4.2. Thymeleaf vs JSP
4.3. Mantendo os dados no formulário
4.4. Thymeleaf e Spring
4.5. Framework extensível
4.6. Plugin do Eclipse para o Thymeleaf

5. Layout responsivo com Bootstrap e HTML5
5.1. Conhecendo os templates do Bootstrap
5.2. Conhecendo o layout do projeto
5.3. Baixando e configurando o layout no projeto
5.4. Prototipando o cadastro da cerveja
5.5. Melhorando a organização do Layout
5.6. Links com URL Expression
5.7. Configurando máscara de dinheiro com jQuery
5.8. Organizando o layout com fragmentos
5.9. Prototipando o cadastro rápido de estilo
5.10. Desafio: Prototipando o cadastro de cliente
5.11. Desafio: prototipando o cadastro de usuário
5.12. Bootstrap Switch no status do usuário
5.13. Desafio: prototipando o cadastro de cidade
5.14. Desafio: prototipando o cadastro de estilo
5.15. Adicionando o favicon

6. Logging
6.1. Introdução
6.2. Configurando o SLF4J com Log4j 2
6.3. Configurando níveis de log com Log4j2

7. Injeção de dependência com Spring IoC
7.1. Introdução
7.2. O ApplicationContext
7.3. Autowired
7.4. Escopo dos beans

8. JPA, Hibernate e Flyway
8.1. Introdução
8.2. Introdução ao JPQL e Hibernate Criteria
8.3. Mapeamento da entidade Cerveja
8.4. Migrando o banco de dados com Flyway

9. Spring Data JPA e Padrão Repository
9.1. Introdução
9.2. Configurando o projeto
9.3. O JpaRepository
9.4. Repository vs DAO
9.5. Montando os combos e radio do cadastro da cerveja
9.6. Usando o th:field
9.7. Fazendo o bind do estilo com a cerveja
9.8. Iniciando a transação para salvar a cerveja

10. Validação customizada e conversores
10.1. Mostrando mensagens do cadastro de cerveja
10.2. Validação customizada com Bean Validation
10.3. Convertendo valores numéricos
10.4. Desafio: Validando campos da cerveja
10.5. Formatando input com erro
10.6. Desafio: Implementar o cadastro do estilo

11. Tratando exceções, callbacks JPA e Ajax
11.1. Validando se existe um estilo persistido
11.2. Salvando o estilo com Ajax: diálogo de cadastro rápido
11.3. Mapeando o controller e mais sobre o ResponseEntity
11.4. Tratando exceções com ExceptionHandler
11.5. Callbacks JPA - Salvando SKU com caixa alta

12. Modularizando o JavaScript
12.1. Module Pattern e Namespaces
12.2. Modularizando a máscara de dinheiro
12.3. Modularizando o cadastro rápido de estilo

13. Estendendo o Thymeleaf
13.1. Dialetos e processadores
13.2. Novo atributo para classe de erro
13.3. Novo elemento para mensagens
13.4. Desafio: Removendo duplicação da tag html

14. Upload da foto e retorno assíncrono
14.1. Conhecendo o UIKit
14.2. Componente de upload da foto com drag and drop
14.3. Upload da foto com Ajax
14.4. Melhorando a disponibilidade da aplicação - retorno assíncrono
14.5. Salvando o nome da foto da cerveja
14.6. Criando pastas para salvar fotos
14.7. Salvando a imagem temporária
14.8. Mostrando a foto na tela
14.9. Refatorando script do upload da foto
14.10. Mantendo a foto na validação

15. Pesquisa, redimensionamento da foto, paginação e ordenação
15.1. Detalhe campos obrigatórios
15.2. Prototipando a pesquisa da cerveja
15.3. Redimensionando a imagem - salvando o thumbnail
15.4. Filtrando e resolvendo o problema do n+1
15.5. Paginação no cliente vs paginação no servidor
15.6. Prototipando a paginação
15.7. Paginação na pesquisa de cervejas
15.8. Mostrando total de páginas dinamicamente
15.9. Destacando a página selecionada
15.10. Implementando botões previous e next
15.11. Mantendo o filtro nas páginas
15.12. Prototipando a ordenacao dinâmica
15.13. Parâmetros da ordenação
15.14. Ordenando a pesquisa por SKU ou nome
15.15. Componente Thymeleaf para ordenação
15.16. Desafio: Pesquisa de estilos
15.17. Desafio: Componente para paginação
15.18. Bean útil para paginação
15.19. Corrigindo bug na pesquisa

16. Cadastro com máscaras e combo dependente
16.1. Configurando máscara de telefone com jQuery
16.2. Atualização do Thymeleaf Layout Dialect
16.3. Configurando máscara de CPF/CNPJ com jQuery
16.4. Implementando radio TipoPessoa
16.5. Desafio: Configurando máscara do CEP com jQuery
16.6. Aplicando migração estado e cidade
16.7. Selecionado cidades pelo estado com Ajax
16.8. Aplicando migração de cliente
16.9. Agrupando validações para CPF ou CNPJ
16.10. Salvando CPF/CNPJ sem formatação
16.11. Validando cliente já cadastrado
16.12. Desafio: Começando a pesquisa de clientes
16.13. Finalizando pesquisa de clientes
16.14. Desafio: Finalizar cadastro de cidade
16.15. Desafio: Implementando pesquisa de cidades

17. Otimizando a performance com cache
17.1. Cacheando a busca de cidades por estado
17.2. Invalidando o cache no cadastro da cidade
17.3. Cache profissional com Guava do Google

18. Cadastro com relacionamento ManyToMany
18.1. Planejando o modelo de grupos e permissões
18.2. Criando a migração do usuário, grupo e permissão
18.3. Desafio: Começando o cadastro do usuário
18.4. Validador customizado para confirmação de senha
18.5. Input e componente para Data
18.6. Desafio: Salvando o usuário no banco de dados
18.7. Salvando o status do usuário
18.8. Salvando o usuário com grupos
18.9. Salvando a senha criptografada com BCrypt

19. Segurança com Spring Security
19.1. Introdução à autenticação e autorização
19.2. Configurando o Spring Security no projeto
19.3. Tela de login customizada
19.4. Autenticando usuário e senha no banco de dados
19.5. Restringindo o acesso às páginas
19.6. Carregando as permissões do usuário
19.7. Adicionando tela de acesso negado
19.8. Entendendo o CSRF
19.9. Configurando o CSRF
19.10. Problema de acentuação voltou?
19.11. Expirando sessão com novo login
19.12. Duração da sessão
19.13. Exibindo o usuário logado
19.14. Escondendo componentes de usuários sem permissão
19.15. Segurança nos métodos

20. Páginas de erros customizadas
20.1. Acessando a página 403 - Acesso negado
20.2. Criando página 404 - Não encontrado
20.3. Desafio: criando página 500 - Erro no servidor

21. Pesquisa com filtros avançados e multisseleção de linhas
21.1. Implementando menu lateral
21.2. Desafio: Protótipo da pesquisa de usuários
21.3. Trabalhando no filtro por grupo
21.4. Multisseleção de linhas - ativando/desativando vários usuários
21.5. Melhorando usabilidade da página de pesquisa de usuários
21.6. Paginação da pesquisa de usuários

22. Diálogo e autocomplete
22.1. Prototipando cadastro de nova venda
22.2. Prototipando pesquisa rápida de clientes
22.3. Implementando a pesquisa rápida de clientes
22.4. Selecionando o cliente na pesquisa rápida
22.5. Conhecendo o componente EasyAutocomplete
22.6. Pesquisando cervejas por sku ou nome
22.7. Renderizando cervejas no autocomplete
22.8. Prototipando itens da venda

23. Página mestre-detalhe, escopo de sessão e testes unitários
23.1. Como funciona o escopo de sessão?
23.2. Introdução aos testes unitários
23.3. Criando tabela de itens de venda
23.4. Testando a tabela de itens de venda
23.5. Mantendo os itens da venda no servidor
23.6. Renderizando HTML retornado do Ajax
23.7. Adicionando mesmos itens na venda
23.8. Implementando atualização da quantidade de itens
23.9. Prototipando remoção de itens da venda
23.10. Removendo itens da venda
23.11. Simulando um escopo de view
23.12. Atualizando valor total
23.13. Desafio: Box do valor total negativo
23.14. Desafio: Criando mapeamento para tabelas de venda
23.15. Salvando a venda no banco de dados
23.16. Criando validador customizado do Spring
23.17. Emitindo uma venda
23.18. Desafio: Implementando a pesquisa das vendas
23.19. Ajustando menu lateral

24. Envio de e-mails e chamadas assíncronas
24.1. Escolhendo o serviço de e-mail
24.2. Configuração do servidor de e-mail com arquivos externos
24.3. Configuração de chamadas assíncronas
24.4. Enviando e-mails simples
24.5. Criando template para e-mail
24.6. Enviando o e-mail em html com imagens
24.7. Formatando valores numéricos no e-mail

25. Implementando edição e exclusão
25.1. Implementando a exclusão de cerveja
25.2. Implementando a edição de cerveja
25.3. Implementando a edição de usuário
25.4. Implementando a edição da venda
25.5. Implementando o cancelamento da venda
25.6. Desafio: Implementando edições e exclusões

26. Dashboard - consultas avançadas e gráficos
26.1. Prototipando o dashboard
26.2. Box de vendas no ano, no mês e ticket médio
26.3. Conhecendo o Chartjs
26.4. Gráfico - Vendas por mês
26.5. Consultas em arquivos externos
26.6. Desafio: Box total de clientes, valor total e itens no estoque
26.7. Eventos para controle de estoque
26.8. Desafio: Gráfico - Vendas por origem

27. Internacionalização
27.1. O header "Accept-Language"
27.2. Configurando a internacionalização e o Thymeleaf
27.3. Internacionalizando as mensagens de validação
27.4. Desafio: internacionalizando sistema

28. Deploy em produção na nuvem
28.1. Novo plugin para formatação de moeda
28.2. Novas versões Thymeleaf e Layout
28.3. Deploy em um Tomcat externo
28.4. Criando conta na AWS e bucket no S3
28.5. Buscando imagens a partir da URL
28.6. Upload das fotos para o S3 da Amazon
28.7. Escolhendo um fornecedor na nuvem
28.8. Fazendo deploy na nuvem

29. Relatórios com JasperReports
29.1. Introdução ao JasperReports
29.2. Criando relatório de vendas emitidas
29.3. Melhorando a formatação do relatório
29.4. Emitindo relatório com Spring MVC

30. Spring Boot
30.1. Introdução
30.2. Criando sua primeira aplicação com o Spring Boot
30.3. Spring Boot na nuvem
30.4. Vale a pena fazer a migração?
30.5. Migração da app Brewer
30.6. Próximos passos e conclusão

31. Apêndice: Atualizando para o Spring Framework 5
31.1. Alterando o Spring Framework para versao 5
31.2. Utilizando a interface WebMvcConfigurer em WebConfig
31.3. Utilizando a API do JasperReports diretamente
31.4. Usando JCache com EhCache

32. Apêndice: Configurando o Spring Boot 2
32.1. Usando o STS
32.2. Reorganizando o pom.xml
32.3. Alterando classes de configuração
32.4. Corrigindo método findOne
32.5. Corrigindo importacão da classe ClassForErrorAttributeTagProcessor
32.6. Alterar profile da classe FotoStorageLocal
32.7. Configurar conexão com o banco de dados
32.8. Criando classe BrewerApplication
32.9. Renomear arquivo consultas-nativas.xml
32.10. Ajustando classe PaginacaoUtil
32.11. Ajuste na classe CervejaEntityListener
32.12. Criando classes conversoras para datas
32.13. Criando classes conversoras para moedas
32.14. Corrigir caminho da imagem da cerveja
32.15. Usar a propriedade user.home na classe FotoStorageLocal
32.16. Usando as novas anotações @NotBlank e @Email
32.17. Removendo método com @InitBinder
32.18. Substituindo o Log4j
32.19. Ajustar páginas de erro
32.20. Publicando no Heroku

EU QUERO APROVEITAR ESSA OPORTUNIDADE AGORA!