SlideShare una empresa de Scribd logo
1 de 56
Descargar para leer sin conexión
SPRING BOOT
Alta produtividade no
desenvolvimento de aplicações
PHELYPP LOCH
Analista Implementador/Scrum Master
SAJ ADV
PROGRAMAÇÃO
◦ Spring
◦ Spring projects
◦ Spring boot
◦ Funcionamento
◦ Vantagens
◦ Construção de uma aplicação
◦ Referências
SPRING1
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
Utiliza tecnologias que estão dentro do
Java EE;
É fácil confundir todo o ecossistema Spring
com apenas o Spring Framework;
SPRING
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
SPRING PROJECTS1
SPRING PROJECTS
Spring Framework Spring Security Spring Data Spring Batch
Spring Integration Spring Reactor Spring AMQP Spring Hateoas
SPRING PROJECTS
Spring Mobile Spring Android Spring Social Spring LDPA
Spring Web
Services
Spring Web Flow Spring XD Spring Boot
SPRING BOOT2
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
Não gera código;
Analisa o projeto e automaticamente o
configura;
SPRING BOOT
FUNCIONAMENTO3
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
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
VANTAGENS5
Agilidade;
Possibilidade de foco na regra de negócio;
Simplicidade;
Padronização;
VANTAGENS
CONSTRUÇÃO DE UMA APLICAÇÃO6
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
Tela 1: Botão para acessar o cadastro dos
convidados e a lista.
CONSTRUÇÃO DE UMA APLICAÇÃO
Tela 2: Listagem dos convidados com o
formulário para cadastro.
CONSTRUÇÃO DE UMA APLICAÇÃO
Criar o projeto com o plugin STS na IDEA
do eclipse.
CONSTRUÇÃO DE UMA APLICAÇÃO
Adicionar a dependência Web.
CONSTRUÇÃO DE UMA APLICAÇÃO
Verificar o pom.xml, que deve ficar
parecido com o código abaixo.
CONSTRUÇÃO DE UMA APLICAÇÃO
Automaticamente é criada a class de
inicialização com anotação
@SpringBootApplication.
CONSTRUÇÃO DE UMA APLICAÇÃO
@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
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
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
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
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
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
CONSTRUÇÃO DE UMA APLICAÇÃO
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
Adicionar dentro da pasta template o
arquivo listaConvidados.html.
CONSTRUÇÃO DE UMA APLICAÇÃO
Mapear a rota/listaconvidados para o
template listaConvidados.html na classe
ConvidadoController.
CONSTRUÇÃO DE UMA APLICAÇÃO
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
Criar o banco de dados da aplicação.
CONSTRUÇÃO DE UMA APLICAÇÃO
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
Mapear a entidade no model.
CONSTRUÇÃO DE UMA APLICAÇÃO
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
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
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
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
Verificar na aplicação de envio de e-mail o
pom.xml gerado.
CONSTRUÇÃO DE UMA APLICAÇÃO
Criar o endPoint de envio de e-mail, com
autenticação via httpBasic.
CONSTRUÇÃO DE UMA APLICAÇÃO
Criar o serviço de e-mail.
CONSTRUÇÃO DE UMA APLICAÇÃO
Configurar a autenticação httpBasic e a API
de envio de e-mail na aplicação.
CONSTRUÇÃO DE UMA APLICAÇÃO
Pode-se testar o serviço via Postman.
CONSTRUÇÃO DE UMA APLICAÇÃO
Integrar a aplicação de envio de e-mail
com a aplicação convidados.
CONSTRUÇÃO DE UMA APLICAÇÃO
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
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
◦ 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
REFERÊNCIAS8
◦ Ecossistema Spring;
◦ Git;
◦ Common application properties;
◦ Documentação;
◦ Alura;
◦ School of Net;
◦ High Tech Cursos;
REFERÊNCIAS
Obrigado.
phelypp.loch@softplan.com.br

Más contenido relacionado

La actualidad más candente

Testes de Unidade com JUnit
Testes de Unidade com JUnitTestes de Unidade com JUnit
Testes de Unidade com JUnit
elliando dias
 
Introduction to Spring Boot!
Introduction to Spring Boot!Introduction to Spring Boot!
Introduction to Spring Boot!
Jakub Kubrynski
 
Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento web
Rodrigo Rodrigues
 

La actualidad más candente (20)

Spring Security e Spring Boot Aula - 2018
Spring Security e Spring Boot Aula - 2018Spring Security e Spring Boot Aula - 2018
Spring Security e Spring Boot Aula - 2018
 
Spring framework
Spring frameworkSpring framework
Spring framework
 
Spring Framework
Spring FrameworkSpring Framework
Spring Framework
 
Spring Boot Tutorial
Spring Boot TutorialSpring Boot Tutorial
Spring Boot Tutorial
 
Spring Framework
Spring FrameworkSpring Framework
Spring Framework
 
Spring framework Introduction
Spring framework IntroductionSpring framework Introduction
Spring framework Introduction
 
React - Introdução
React - IntroduçãoReact - Introdução
React - Introdução
 
Spring MVC
Spring MVCSpring MVC
Spring MVC
 
Spring Data Jpa
Spring Data JpaSpring Data Jpa
Spring Data Jpa
 
Spring annotation
Spring annotationSpring annotation
Spring annotation
 
Spring boot - an introduction
Spring boot - an introductionSpring boot - an introduction
Spring boot - an introduction
 
Testes de Unidade com JUnit
Testes de Unidade com JUnitTestes de Unidade com JUnit
Testes de Unidade com JUnit
 
Introduction to Spring Framework
Introduction to Spring FrameworkIntroduction to Spring Framework
Introduction to Spring Framework
 
Introduction to Spring Boot!
Introduction to Spring Boot!Introduction to Spring Boot!
Introduction to Spring Boot!
 
Spring boot jpa
Spring boot jpaSpring boot jpa
Spring boot jpa
 
Vue JS Intro
Vue JS IntroVue JS Intro
Vue JS Intro
 
Spring User Guide
Spring User GuideSpring User Guide
Spring User Guide
 
Java: strings e arrays
Java: strings e arraysJava: strings e arrays
Java: strings e arrays
 
Node.js e Express
Node.js e ExpressNode.js e Express
Node.js e Express
 
Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento web
 

Destacado

Spring Bootで変わる Javaアプリ開発! #jsug
Spring Bootで変わる Javaアプリ開発! #jsugSpring Bootで変わる Javaアプリ開発! #jsug
Spring Bootで変わる Javaアプリ開発! #jsug
Toshiaki Maki
 
Building a Spring Boot Application - Ask the Audience! (from JavaLand 2017)
Building a Spring Boot Application - Ask the Audience!  (from JavaLand 2017)Building a Spring Boot Application - Ask the Audience!  (from JavaLand 2017)
Building a Spring Boot Application - Ask the Audience! (from JavaLand 2017)
🎤 Hanno Embregts 🎸
 

Destacado (19)

Microservices with Java, Spring Boot and Spring Cloud
Microservices with Java, Spring Boot and Spring CloudMicroservices with Java, Spring Boot and Spring Cloud
Microservices with Java, Spring Boot and Spring Cloud
 
Spring Bootで変わる Javaアプリ開発! #jsug
Spring Bootで変わる Javaアプリ開発! #jsugSpring Bootで変わる Javaアプリ開発! #jsug
Spring Bootで変わる Javaアプリ開発! #jsug
 
Deploying Spring Boot applications with Docker (east bay cloud meetup dec 2014)
Deploying Spring Boot applications with Docker (east bay cloud meetup dec 2014)Deploying Spring Boot applications with Docker (east bay cloud meetup dec 2014)
Deploying Spring Boot applications with Docker (east bay cloud meetup dec 2014)
 
Microservice With Spring Boot and Spring Cloud
Microservice With Spring Boot and Spring CloudMicroservice With Spring Boot and Spring Cloud
Microservice With Spring Boot and Spring Cloud
 
AngularJS Framework
AngularJS FrameworkAngularJS Framework
AngularJS Framework
 
Spring 5 + Kotlin (Rus)
Spring 5 + Kotlin (Rus)Spring 5 + Kotlin (Rus)
Spring 5 + Kotlin (Rus)
 
Bootiful Code with Spring Boot
Bootiful Code with Spring BootBootiful Code with Spring Boot
Bootiful Code with Spring Boot
 
Developing and deploying applications with Spring Boot and Docker (@oakjug)
Developing and deploying applications with Spring Boot and Docker (@oakjug)Developing and deploying applications with Spring Boot and Docker (@oakjug)
Developing and deploying applications with Spring Boot and Docker (@oakjug)
 
REST with Spring Boot #jqfk
REST with Spring Boot #jqfkREST with Spring Boot #jqfk
REST with Spring Boot #jqfk
 
Microservices with Netflix OSS and Spring Cloud - Dev Day Orange
Microservices with Netflix OSS and Spring Cloud -  Dev Day OrangeMicroservices with Netflix OSS and Spring Cloud -  Dev Day Orange
Microservices with Netflix OSS and Spring Cloud - Dev Day Orange
 
REST and Microservices
REST and MicroservicesREST and Microservices
REST and Microservices
 
A3 Thinking Masterclass by John Kiff
A3 Thinking Masterclass by John KiffA3 Thinking Masterclass by John Kiff
A3 Thinking Masterclass by John Kiff
 
Building a Spring Boot Application - Ask the Audience! (from JavaLand 2017)
Building a Spring Boot Application - Ask the Audience!  (from JavaLand 2017)Building a Spring Boot Application - Ask the Audience!  (from JavaLand 2017)
Building a Spring Boot Application - Ask the Audience! (from JavaLand 2017)
 
3Com 792002 REV D2
3Com 792002 REV D23Com 792002 REV D2
3Com 792002 REV D2
 
Bowel treatment cme credits
Bowel treatment cme creditsBowel treatment cme credits
Bowel treatment cme credits
 
Resolución del Juez Bonadio
Resolución del Juez BonadioResolución del Juez Bonadio
Resolución del Juez Bonadio
 
Wellstream Processing sales presentation
Wellstream Processing sales presentation Wellstream Processing sales presentation
Wellstream Processing sales presentation
 
What JS? Itself
What JS? ItselfWhat JS? Itself
What JS? Itself
 
3Com 3C400050
3Com 3C4000503Com 3C400050
3Com 3C400050
 

Similar a Spring Boot - Uma app do 0 a Web em 30 minutos

Spring MVC Framework
Spring MVC FrameworkSpring MVC Framework
Spring MVC Framework
elliando dias
 
Dominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E Jpa
Dominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E JpaDominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E Jpa
Dominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E Jpa
Ana Albert
 

Similar a Spring Boot - Uma app do 0 a Web em 30 minutos (20)

Framework web 01 - Aula UTFPR 2018
Framework web 01 - Aula UTFPR 2018Framework web 01 - Aula UTFPR 2018
Framework web 01 - Aula UTFPR 2018
 
Spring MVC Framework
Spring MVC FrameworkSpring MVC Framework
Spring MVC Framework
 
Spring & Struts
Spring & StrutsSpring & Struts
Spring & Struts
 
VSSUMMIT 2023 - Como partir do zero e entregar uma API Profissional com .NET ...
VSSUMMIT 2023 - Como partir do zero e entregar uma API Profissional com .NET ...VSSUMMIT 2023 - Como partir do zero e entregar uma API Profissional com .NET ...
VSSUMMIT 2023 - Como partir do zero e entregar uma API Profissional com .NET ...
 
Cake Php
Cake PhpCake Php
Cake Php
 
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
 
Web Services
Web ServicesWeb Services
Web Services
 
Owin e katana
Owin e katanaOwin e katana
Owin e katana
 
Java Web Dev Introdução
Java Web Dev IntroduçãoJava Web Dev Introdução
Java Web Dev Introdução
 
1409243945064
14092439450641409243945064
1409243945064
 
Introdução à Programação Web com Angular
Introdução à Programação Web com AngularIntrodução à Programação Web com Angular
Introdução à Programação Web com Angular
 
Introdução ao JBoss Fuse 6.x: criação e implantação de um serviço CXF
Introdução ao JBoss Fuse 6.x: criação e implantação de um serviço CXFIntrodução ao JBoss Fuse 6.x: criação e implantação de um serviço CXF
Introdução ao JBoss Fuse 6.x: criação e implantação de um serviço CXF
 
API com SpringBoot
API com SpringBootAPI com SpringBoot
API com SpringBoot
 
Dominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E Jpa
Dominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E JpaDominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E Jpa
Dominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E Jpa
 
Angular 2, TypeScript e Além
Angular 2, TypeScript e AlémAngular 2, TypeScript e Além
Angular 2, TypeScript e Além
 
Desenvolvimento Web com Simfony Framework.
Desenvolvimento Web com Simfony Framework.Desenvolvimento Web com Simfony Framework.
Desenvolvimento Web com Simfony Framework.
 
Grails
GrailsGrails
Grails
 
Desenvolvimento Ágil com Grails.
Desenvolvimento Ágil com Grails.Desenvolvimento Ágil com Grails.
Desenvolvimento Ágil com Grails.
 
O framework spring
O framework springO framework spring
O framework spring
 
Palestra
PalestraPalestra
Palestra
 

Último

Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
Natalia Granato
 

Último (6)

Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 

Spring Boot - Uma app do 0 a Web em 30 minutos

  • 1. SPRING BOOT Alta produtividade no desenvolvimento de aplicações
  • 3. PROGRAMAÇÃO ◦ Spring ◦ Spring projects ◦ Spring boot ◦ Funcionamento ◦ Vantagens ◦ Construção de uma aplicação ◦ Referências
  • 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
  • 9. SPRING PROJECTS Spring Framework Spring Security Spring Data Spring Batch Spring Integration Spring Reactor Spring AMQP Spring Hateoas
  • 10. SPRING PROJECTS Spring Mobile Spring Android Spring Social Spring LDPA Spring Web Services Spring Web Flow Spring XD Spring Boot
  • 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
  • 13. Não gera código; Analisa o projeto e automaticamente o configura; 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
  • 18. Agilidade; Possibilidade de foco na regra de negócio; Simplicidade; Padronização; VANTAGENS
  • 19. CONSTRUÇÃO DE UMA APLICAÇÃO6
  • 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
  • 24. Adicionar a dependência Web. 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
  • 33. 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
  • 40. Mapear a entidade no model. 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
  • 45. Verificar na aplicação de envio de e-mail o pom.xml gerado. CONSTRUÇÃO DE UMA APLICAÇÃO
  • 46. Criar o endPoint de envio de e-mail, com autenticação via httpBasic. CONSTRUÇÃO DE UMA APLICAÇÃO
  • 47. Criar o serviço de 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
  • 55. ◦ Ecossistema Spring; ◦ Git; ◦ Common application properties; ◦ Documentação; ◦ Alura; ◦ School of Net; ◦ High Tech Cursos; REFERÊNCIAS