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

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

  • 1.
    SPRING BOOT Alta produtividadeno desenvolvimento de aplicações
  • 2.
  • 3.
    PROGRAMAÇÃO ◦ Spring ◦ Springprojects ◦ Spring boot ◦ Funcionamento ◦ Vantagens ◦ Construção de uma aplicação ◦ Referências
  • 4.
  • 5.
    Foi criado porRod 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 queestã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
  • 8.
  • 9.
    SPRING PROJECTS Spring FrameworkSpring Security Spring Data Spring Batch Spring Integration Spring Reactor Spring AMQP Spring Hateoas
  • 10.
    SPRING PROJECTS Spring MobileSpring Android Spring Social Spring LDPA Spring Web Services Spring Web Flow Spring XD Spring Boot
  • 11.
  • 12.
    Permite criar aplicaçõessem 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; Analisao projeto e automaticamente o configura; SPRING BOOT
  • 14.
  • 15.
    Convenção sobre configuração Aoinvé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 tornaum 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
  • 17.
  • 18.
    Agilidade; Possibilidade de focona regra de negócio; Simplicidade; Padronização; VANTAGENS
  • 19.
    CONSTRUÇÃO DE UMAAPLICAÇÃO6
  • 20.
    Implementar uma listade 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ãopara acessar o cadastro dos convidados e a lista. CONSTRUÇÃO DE UMA APLICAÇÃO
  • 22.
    Tela 2: Listagemdos convidados com o formulário para cadastro. CONSTRUÇÃO DE UMA APLICAÇÃO
  • 23.
    Criar o projetocom o plugin STS na IDEA do eclipse. CONSTRUÇÃO DE UMA APLICAÇÃO
  • 24.
    Adicionar a dependênciaWeb. 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 é criadaa class de inicialização com anotação @SpringBootApplication. CONSTRUÇÃO DE UMA APLICAÇÃO
  • 27.
    @SpringBootApplication ◦ Responsável porconfigurar 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 enginede 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 estruturade 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 aser 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çõescom 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.
  • 34.
    O que foivisto 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 dapasta template o arquivo listaConvidados.html. CONSTRUÇÃO DE UMA APLICAÇÃO
  • 36.
    Mapear a rota/listaconvidadospara o template listaConvidados.html na classe ConvidadoController. CONSTRUÇÃO DE UMA APLICAÇÃO
  • 37.
    Configurar o bancode 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 bancode dados da aplicação. CONSTRUÇÃO DE UMA APLICAÇÃO
  • 39.
    Configurar a conexãoda aplicação com o banco de dados via bean. Ou via common-application-properties.html. CONSTRUÇÃO DE UMA APLICAÇÃO
  • 40.
    Mapear a entidadeno model. CONSTRUÇÃO DE UMA APLICAÇÃO
  • 41.
    Fazer com queo 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 classeConvidadoService 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 classeConvidadoController 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 outraaplicaçã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çãode envio de e-mail o pom.xml gerado. CONSTRUÇÃO DE UMA APLICAÇÃO
  • 46.
    Criar o endPointde envio de e-mail, com autenticação via httpBasic. CONSTRUÇÃO DE UMA APLICAÇÃO
  • 47.
    Criar o serviçode e-mail. CONSTRUÇÃO DE UMA APLICAÇÃO
  • 48.
    Configurar a autenticaçãohttpBasic e a API de envio de e-mail na aplicação. CONSTRUÇÃO DE UMA APLICAÇÃO
  • 49.
    Pode-se testar oserviço via Postman. CONSTRUÇÃO DE UMA APLICAÇÃO
  • 50.
    Integrar a aplicaçãode envio de e-mail com a aplicação convidados. CONSTRUÇÃO DE UMA APLICAÇÃO
  • 51.
    Trocar o servidorde 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 daaplicação realizada no curso https://github.com/phelypp/curso-spring-b oot/archive/master.zip CONSTRUÇÃO DE UMA APLICAÇÃO
  • 54.
  • 55.
    ◦ Ecossistema Spring; ◦Git; ◦ Common application properties; ◦ Documentação; ◦ Alura; ◦ School of Net; ◦ High Tech Cursos; REFERÊNCIAS
  • 56.