5. Foi criado por Rod Johnson, em meados de
2002;
Surgiu como uma alternativa ao Java EE;
Não é apenas um framework, mas um
conjunto de projetos que resolvem várias
situações do cotidiano;
SPRING
6. Utiliza tecnologias que estão dentro do
Java EE;
É fácil confundir todo o ecossistema Spring
com apenas o Spring Framework;
SPRING
7. Spring Framework é o projeto do Spring
que serve de base para todos os outros;
Para os programadores mais antigos, falar
em spring automaticamente se pensava
nos arquivos de XML.
SPRING
12. Permite criar aplicações sem a necessidade
de configuração e o uso de XML;
Utiliza o conceito de convenção sobre
configuração;
De uma forma grosseira, é um acelerador
de configuração;
SPRING BOOT
15. Convenção sobre configuração
Ao invés de dizer para o Spring Boot onde
estão os HTML, deixamos em um local que
é uma convenção, então o framework vai
direto lá, sem precisar deixar isso
configurado em algum local;
FUNCIONAMENTO
16. O que torna um projeto Spring Boot são as
relações de dependência no pom.xml ao
spring-boot-parent que faz a
autoconfiguração;
Não tem uma tarefa específica. É composto
por starters, onde adiciona-se ao projeto o
starter necessário para atender
determinado objetivo.
FUNCIONAMENTO
20. Implementar uma lista de convidados para
festa do SAJ ADV, utilizando:
◦ Spring Boot;
◦ Spring MVC;
◦ Spring Data JPA;
◦ Spring Security;
◦ Thymeleaf;
◦ Ecplise com plugin Spring Tool Suite;
◦ Maven;
CONSTRUÇÃO DE UMA APLICAÇÃO
21. Tela 1: Botão para acessar o cadastro dos
convidados e a lista.
CONSTRUÇÃO DE UMA APLICAÇÃO
22. Tela 2: Listagem dos convidados com o
formulário para cadastro.
CONSTRUÇÃO DE UMA APLICAÇÃO
23. Criar o projeto com o plugin STS na IDEA
do eclipse.
CONSTRUÇÃO DE UMA APLICAÇÃO
25. Verificar o pom.xml, que deve ficar
parecido com o código abaixo.
CONSTRUÇÃO DE UMA APLICAÇÃO
26. Automaticamente é criada a class de
inicialização com anotação
@SpringBootApplication.
CONSTRUÇÃO DE UMA APLICAÇÃO
27. @SpringBootApplication
◦ Responsável por configurar a aplicação
Spring;
◦ É o resultado de um aglomerado de
outras configurações, como por
exemplo, o diretório onde o Spring deve
procurar todos os Beans da aplicação,
entre outras configurações.
CONSTRUÇÃO DE UMA APLICAÇÃO
28. Utilizar a engine de templates, a própria do
Spring, chamada Thymeleaf.
No arquivo pom.xml, adicionar a starter
Thymeleaf.
CONSTRUÇÃO DE UMA APLICAÇÃO
29. Criar a estrutura de pasta
resources/templates para conter as
páginas da aplicação.
Adicionar o arquivo index.html.
CONSTRUÇÃO DE UMA APLICAÇÃO
30. Um ponto a ser observado é que na página
index.html se usa Thymeleaf com
Bootstrap.
Criar a estrutura de pasta resources/static
para adicionar os arquivos estáticos do
Bootstrap.
Baixar o Bootstrap em getbootstrap.com/
e descompactar nesta pasta.
CONSTRUÇÃO DE UMA APLICAÇÃO
31. Fazer as associações com a engine de
template, utilizando starter web do Spring
Boot, que disponibiliza o Spring MVC.
CONSTRUÇÃO DE UMA APLICAÇÃO
32. Spring MVC
◦ Modelo - responsável por encapsular os
dados da aplicação;
◦ Visão - renderiza as respostas ao
usuário;
◦ Controlador - responsável por receber
as requisições do usuário e executar os
serviços.
CONSTRUÇÃO DE UMA APLICAÇÃO
34. O que foi visto até agora, está dentro do
conceito Convenção sobre a Configuração.
Os templates das páginas são guardados na
pasta resourcestemplates e também a
convenção de onde armazenar os arquivos
estáticos (css, js, imagens, etc.).
CONSTRUÇÃO DE UMA APLICAÇÃO
35. Adicionar dentro da pasta template o
arquivo listaConvidados.html.
CONSTRUÇÃO DE UMA APLICAÇÃO
36. Mapear a rota/listaconvidados para o
template listaConvidados.html na classe
ConvidadoController.
CONSTRUÇÃO DE UMA APLICAÇÃO
37. Configurar o banco de dados. Utilizar o
starter do Spring Boot Data JPA, que
configura todas as dependências com
Hibernate e JPA.
CONSTRUÇÃO DE UMA APLICAÇÃO
38. Criar o banco de dados da aplicação.
CONSTRUÇÃO DE UMA APLICAÇÃO
39. Configurar a conexão da aplicação com o
banco de dados via bean.
Ou via
common-application-properties.html.
CONSTRUÇÃO DE UMA APLICAÇÃO
41. Fazer com que o controller resgate os
registros no banco de dados.
O Spring Boot tem disponível um CRUD
genérico, que permite fazer isso de forma
bem simples.
CONSTRUÇÃO DE UMA APLICAÇÃO
42. Criar a classe ConvidadoService que deve
conter os métodos obterTodosConvidados
e salvarConvidados, injetando o
ConvidadoRepository para realizar as
operações no banco de dados.
CONSTRUÇÃO DE UMA APLICAÇÃO
43. Voltar na classe ConvidadoController para
injetar a classe CovidadosService e mapear
a rota de /salvarConvidados, assim, todas
as camadas se integram.
CONSTRUÇÃO DE UMA APLICAÇÃO
44. Criar uma outra aplicação com o Spring
Initializr, que será responsável pela
notificação via e-mail.
CONSTRUÇÃO DE UMA APLICAÇÃO
48. Configurar a autenticação httpBasic e a API
de envio de e-mail na aplicação.
CONSTRUÇÃO DE UMA APLICAÇÃO
49. Pode-se testar o serviço via Postman.
CONSTRUÇÃO DE UMA APLICAÇÃO
50. Integrar a aplicação de envio de e-mail
com a aplicação convidados.
CONSTRUÇÃO DE UMA APLICAÇÃO
51. Trocar o servidor de aplicação para Jetty.
Excluir a dependência do tomcat.
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions
Adicionar:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
</dependency>
CONSTRUÇÃO DE UMA APLICAÇÃO
52. Empacotar a aplicação:
◦ Adicionar o spring-boot-maven-plugin
no pom.xml;
◦ Executar mvn package;
◦ Executar java -jar target/NOME_APP.jar.
CONSTRUÇÃO DE UMA APLICAÇÃO
53. ◦ Código da aplicação realizada no curso
https://github.com/phelypp/curso-spring-b
oot/archive/master.zip
CONSTRUÇÃO DE UMA APLICAÇÃO