SlideShare uma empresa Scribd logo
1 de 56
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

Introduction to Spring Boot!
Introduction to Spring Boot!Introduction to Spring Boot!
Introduction to Spring Boot!Jakub Kubrynski
 
A Spring Data’s Guide to Persistence
A Spring Data’s Guide to PersistenceA Spring Data’s Guide to Persistence
A Spring Data’s Guide to PersistenceVMware Tanzu
 
Curso de RESTful WebServices em Java com JAX-RS (Java EE 7)
Curso de RESTful WebServices em Java com JAX-RS (Java EE 7)Curso de RESTful WebServices em Java com JAX-RS (Java EE 7)
Curso de RESTful WebServices em Java com JAX-RS (Java EE 7)Helder da Rocha
 
ASP.NET Core MVC + Web API with Overview
ASP.NET Core MVC + Web API with OverviewASP.NET Core MVC + Web API with Overview
ASP.NET Core MVC + Web API with OverviewShahed Chowdhuri
 
Metodologia orientado a objetos
Metodologia orientado a objetosMetodologia orientado a objetos
Metodologia orientado a objetosGabriel Faustino
 
Introduction to Spring Framework
Introduction to Spring FrameworkIntroduction to Spring Framework
Introduction to Spring Framework Serhat Can
 
Spring boot
Spring bootSpring boot
Spring bootsdeeg
 
Basic Concept of Node.js & NPM
Basic Concept of Node.js & NPMBasic Concept of Node.js & NPM
Basic Concept of Node.js & NPMBhargav Anadkat
 
Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)Bruno Grange
 
An introduction to maven gradle and sbt
An introduction to maven gradle and sbtAn introduction to maven gradle and sbt
An introduction to maven gradle and sbtFabio Fumarola
 
Curso de Java: Introdução a lambda e Streams
Curso de Java: Introdução a lambda e StreamsCurso de Java: Introdução a lambda e Streams
Curso de Java: Introdução a lambda e StreamsHelder da Rocha
 
Programação Orientada a Objetos com Java
Programação Orientada a Objetos com JavaProgramação Orientada a Objetos com Java
Programação Orientada a Objetos com JavaÁlvaro Farias Pinheiro
 
Spring boot Introduction
Spring boot IntroductionSpring boot Introduction
Spring boot IntroductionJeevesh Pandey
 

Mais procurados (20)

CSS FLexBox
CSS FLexBoxCSS FLexBox
CSS FLexBox
 
Introduction to Spring Boot!
Introduction to Spring Boot!Introduction to Spring Boot!
Introduction to Spring Boot!
 
A Spring Data’s Guide to Persistence
A Spring Data’s Guide to PersistenceA Spring Data’s Guide to Persistence
A Spring Data’s Guide to Persistence
 
Curso de RESTful WebServices em Java com JAX-RS (Java EE 7)
Curso de RESTful WebServices em Java com JAX-RS (Java EE 7)Curso de RESTful WebServices em Java com JAX-RS (Java EE 7)
Curso de RESTful WebServices em Java com JAX-RS (Java EE 7)
 
ASP.NET Core MVC + Web API with Overview
ASP.NET Core MVC + Web API with OverviewASP.NET Core MVC + Web API with Overview
ASP.NET Core MVC + Web API with Overview
 
Metodologia orientado a objetos
Metodologia orientado a objetosMetodologia orientado a objetos
Metodologia orientado a objetos
 
Introduction to Spring Framework
Introduction to Spring FrameworkIntroduction to Spring Framework
Introduction to Spring Framework
 
Spring Data Jpa
Spring Data JpaSpring Data Jpa
Spring Data Jpa
 
Spring boot
Spring bootSpring boot
Spring boot
 
Spring boot
Spring bootSpring boot
Spring boot
 
Basic Concept of Node.js & NPM
Basic Concept of Node.js & NPMBasic Concept of Node.js & NPM
Basic Concept of Node.js & NPM
 
Spring Framework
Spring FrameworkSpring Framework
Spring Framework
 
Spring Web MVC
Spring Web MVCSpring Web MVC
Spring Web MVC
 
Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)
 
An introduction to maven gradle and sbt
An introduction to maven gradle and sbtAn introduction to maven gradle and sbt
An introduction to maven gradle and sbt
 
Dot Net Core
Dot Net CoreDot Net Core
Dot Net Core
 
Curso de Java: Introdução a lambda e Streams
Curso de Java: Introdução a lambda e StreamsCurso de Java: Introdução a lambda e Streams
Curso de Java: Introdução a lambda e Streams
 
.Net Core
.Net Core.Net Core
.Net Core
 
Programação Orientada a Objetos com Java
Programação Orientada a Objetos com JavaProgramação Orientada a Objetos com Java
Programação Orientada a Objetos com Java
 
Spring boot Introduction
Spring boot IntroductionSpring boot Introduction
Spring boot Introduction
 

Destaque

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 CloudEberhard Wolff
 
Spring Bootで変わる Javaアプリ開発! #jsug
Spring Bootで変わる Javaアプリ開発! #jsugSpring Bootで変わる Javaアプリ開発! #jsug
Spring Bootで変わる Javaアプリ開発! #jsugToshiaki Maki
 
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)Chris Richardson
 
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 CloudEberhard Wolff
 
Spring boot introduction
Spring boot introductionSpring boot introduction
Spring boot introductionRasheed Waraich
 
Spring 5 + Kotlin (Rus)
Spring 5 + Kotlin (Rus)Spring 5 + Kotlin (Rus)
Spring 5 + Kotlin (Rus)Siarhei Krukau
 
Bootiful Code with Spring Boot
Bootiful Code with Spring BootBootiful Code with Spring Boot
Bootiful Code with Spring BootJoshua Long
 
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)Chris Richardson
 
REST with Spring Boot #jqfk
REST with Spring Boot #jqfkREST with Spring Boot #jqfk
REST with Spring Boot #jqfkToshiaki Maki
 
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 Orangeacogoluegnes
 
REST and Microservices
REST and MicroservicesREST and Microservices
REST and MicroservicesShaun Abram
 
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 🎸
 
3Com 792002 REV D2
3Com 792002 REV D23Com 792002 REV D2
3Com 792002 REV D2savomir
 
Bowel treatment cme credits
Bowel treatment cme creditsBowel treatment cme credits
Bowel treatment cme creditsibdhorizons
 
Resolución del Juez Bonadio
Resolución del Juez BonadioResolución del Juez Bonadio
Resolución del Juez BonadioCorrientesaldia
 
Wellstream Processing sales presentation
Wellstream Processing sales presentation Wellstream Processing sales presentation
Wellstream Processing sales presentation Ingjerd Jensen
 

Destaque (20)

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
 
Spring boot introduction
Spring boot introductionSpring boot introduction
Spring boot introduction
 
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
 
Spring Boot Tutorial
Spring Boot TutorialSpring Boot Tutorial
Spring Boot Tutorial
 
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
 

Semelhante a Spring Boot desenvolvimento aplicações

Spring MVC Framework
Spring MVC FrameworkSpring MVC Framework
Spring MVC Frameworkelliando dias
 
Spring & Struts
Spring & StrutsSpring & Struts
Spring & Strutseduan
 
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 ...Dextra Sistemas / Etec Itu
 
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...Daniel Makiyama
 
Java Web Dev Introdução
Java Web Dev IntroduçãoJava Web Dev Introdução
Java Web Dev IntroduçãoMarcio Marinho
 
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 AngularElmano Cavalcanti
 
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 CXFRafael T. C. Soares (tuelho)
 
API com SpringBoot
API com SpringBootAPI com SpringBoot
API com SpringBootceife
 
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 JpaAna Albert
 
Angular 2, TypeScript e Além
Angular 2, TypeScript e AlémAngular 2, TypeScript e Além
Angular 2, TypeScript e AlémAndre Baltieri
 
Desenvolvimento Web com Simfony Framework.
Desenvolvimento Web com Simfony Framework.Desenvolvimento Web com Simfony Framework.
Desenvolvimento Web com Simfony Framework.Vinícius de Paula
 
Desenvolvimento Ágil com Grails.
Desenvolvimento Ágil com Grails.Desenvolvimento Ágil com Grails.
Desenvolvimento Ágil com Grails.Alex Guido
 
O framework spring
O framework springO framework spring
O framework springBruno Catão
 

Semelhante a Spring Boot desenvolvimento aplicações (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.
 
Desenvolvimento Ágil com Grails.
Desenvolvimento Ágil com Grails.Desenvolvimento Ágil com Grails.
Desenvolvimento Ágil com Grails.
 
Grails
GrailsGrails
Grails
 
O framework spring
O framework springO framework spring
O framework spring
 
Palestra
PalestraPalestra
Palestra
 

Spring Boot desenvolvimento aplicações

  • 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