SlideShare une entreprise Scribd logo
1  sur  19
Gradle
● Automação de build
● Tasks => passos que o Gradle executa para
executar o build
● build.gradle => adicionar subprojetos, modificar
parâmetros de linha de comando
Gradle
● settings.gradle => script com plugins e
dependências do projeto
● gradle.properties => arquivo com configurações
simples do projeto
Multi Project
Características
● Sistema subdividido em módulos
● Um ou mais módulos ligados a um build.gradle
Multi Project
Vantagens
● Facilita a manutenção e escalabilidade do código
● Facilita a divisão do trabalho em time
● Deixa o código mais bonito e elegante
Plugins
● Conjuntos de tasks
● Estendem os recursos do projeto
● Aplicam configurações específicas (por exemplo,
adicionando repositórios organizacionais ou impondo
padrões)
Plugins Vantagens
● Promove a reutilização e reduz a sobrecarga de manter
uma lógica semelhante em vários projetos
● Permite um maior grau de modularização, melhorando
a compreensibilidade e a organização
● Encapsula a lógica imperativa e permite que os scripts
de construção sejam o mais declarativos possível
Inversão de Controle
Inversão de Controle é uma forma diferente que temos para manipular o
controle sobre um objeto. É um padrão. Pode se dizer que é a mudança de
conhecimento que uma classe tem em relação à outra.
public class VendaDeProduto {
public void
vendeProduto(Produto produto) {
//Todo o código para a venda
do produto...
Log log = new
Log("Arquivo.txt");
log.grava(produto);
}
}
Injeção de dependência
Injeção de dependência é uma técnica utilizada para diminuir o
acoplamento entre classes.
Algumas formas de fazermos a Injeção de Dependência:
● Constructor Injection
● Getters & Setters
● Autowired
public class VendaDeProduto {
private Log log;
public void VendaDeProduto(Log logVenda) {
log = logVenda;
}
public void vendeProduto(Produto produto) {
//Todo o código para a venda do produto...
log.grava(produto);
}
}
Spring
● É um framework Java criado com o objetivo de facilitar o desenvolvimento
de aplicações
● Explora os conceitos de Inversão de Controle e Injeção de Dependências
● Fornece módulos de integração, segurança, testes e desenvolvimento
web, entre outros
Spring Boot
O Spring Boot é uma ferramenta que visa facilitar o processo de
configuração e publicação de aplicações que utilizem o ecossistema
Spring.
Spring Web MVC
Spring MVC é um framework JAVA, que implementa o design pattern
MVC.
● Model => Lógica da aplicação (serviços, repositórios e entidades).
● Control => Recebe as informações do usuário, envia para a Model e
retorna os dados requisitados para a View.
● View => Saída de representação de dados.
HATEOAS
● Navegação dinâmica entre endpoints através de links adicionados aos dados
● Essa combinação representa o estado do sistema
● Reforça o stateless => O servidor não precisa manter registro da sessão: o
próprio cliente sabe que as únicas transições possíveis são aquelas para as
quais existe um link disponível
Exemplo de Hateoas
● rel => Nesse caso o link faz referência à própria pessoa;
● href => URL completa que define um único recurso
Objeto Cliente
JSON simples
JSON Hateoas
LOMBOK
O Lombok é uma biblioteca Java focada em produtividade e redução de código
boilerplate que por meio de anotações adicionadas ao nosso código ensinamos o
compilador (maven ou gradle) durante o processo de compilação a criar código
Java.
@AllArgsConstructor => Construtor padrão com todos os argumentos
@NoArgsConstructor => Construtor vazio
@ToString => Cria uma toString
@EqualsAndHashCode => Cria hashcode e equals
LOMBOK
@Getter => Gera apenas getters
@Setter => Gera apenas setters
@RequiredArgsConstructor => Gera um construtor com um argumento por
campo final
@Data => Todos juntos agora: um atalho para @ToString,
@EqualsAndHashCode, @Getter em todos os campos e @Setter em todos os
campos não-finais, e @RequiredArgsConstructor
@Builder => Cria objetos com facilidade
@Synchronized => sincroniza as threads

Contenu connexe

Tendances

JSF2 ScrumToys SestInfo 2010
JSF2 ScrumToys SestInfo 2010JSF2 ScrumToys SestInfo 2010
JSF2 ScrumToys SestInfo 2010
Eder Magalhães
 
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.jsJava script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
Vinicius Reis
 

Tendances (20)

ASP .NET MVC na Prática
ASP .NET MVC na PráticaASP .NET MVC na Prática
ASP .NET MVC na Prática
 
Campus Party 2014 - Desenvolvimento Web com ASP.NET
Campus Party 2014 - Desenvolvimento Web com ASP.NETCampus Party 2014 - Desenvolvimento Web com ASP.NET
Campus Party 2014 - Desenvolvimento Web com ASP.NET
 
Como trabalhar com angular js
Como trabalhar com angular jsComo trabalhar com angular js
Como trabalhar com angular js
 
Introdução ao Spring Framework MVC
Introdução ao Spring Framework MVCIntrodução ao Spring Framework MVC
Introdução ao Spring Framework MVC
 
TDC 2014 - Arquitetura front-end com AngularJS
TDC 2014 - Arquitetura front-end com AngularJSTDC 2014 - Arquitetura front-end com AngularJS
TDC 2014 - Arquitetura front-end com AngularJS
 
Introdução Ao Spring Com Spring Boot
Introdução Ao Spring Com Spring BootIntrodução Ao Spring Com Spring Boot
Introdução Ao Spring Com Spring Boot
 
Minicurso Aplicação Web Utilizando o Framework Laravel
Minicurso Aplicação Web Utilizando o Framework LaravelMinicurso Aplicação Web Utilizando o Framework Laravel
Minicurso Aplicação Web Utilizando o Framework Laravel
 
Comunicação em Tempo Real com ASP.Net SignalR
Comunicação em Tempo Real com ASP.Net SignalRComunicação em Tempo Real com ASP.Net SignalR
Comunicação em Tempo Real com ASP.Net SignalR
 
Angular js
Angular jsAngular js
Angular js
 
Aula parte 1 de JSF 2.2
Aula parte 1 de JSF 2.2Aula parte 1 de JSF 2.2
Aula parte 1 de JSF 2.2
 
JSF2 ScrumToys SestInfo 2010
JSF2 ScrumToys SestInfo 2010JSF2 ScrumToys SestInfo 2010
JSF2 ScrumToys SestInfo 2010
 
Apresentação Facelets_UNIFEI
Apresentação Facelets_UNIFEIApresentação Facelets_UNIFEI
Apresentação Facelets_UNIFEI
 
Apresentação angular js
Apresentação angular jsApresentação angular js
Apresentação angular js
 
Desenvolvendo aplicações com Angular e Laravel no Back-end
Desenvolvendo aplicações com Angular e Laravel no Back-endDesenvolvendo aplicações com Angular e Laravel no Back-end
Desenvolvendo aplicações com Angular e Laravel no Back-end
 
Estudo de caso ASP.NET MVC e Silverlight
Estudo de caso ASP.NET MVC e SilverlightEstudo de caso ASP.NET MVC e Silverlight
Estudo de caso ASP.NET MVC e Silverlight
 
Futuro do ASP.NET vNext - MVP ShowCast
Futuro do ASP.NET vNext - MVP ShowCast Futuro do ASP.NET vNext - MVP ShowCast
Futuro do ASP.NET vNext - MVP ShowCast
 
Spring data
Spring dataSpring data
Spring data
 
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.jsJava script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
 
Treinamento Play Framework
Treinamento Play FrameworkTreinamento Play Framework
Treinamento Play Framework
 
Aula Introdução a VRaptor 4 - Pós Java UTFPR
Aula Introdução a VRaptor 4 - Pós Java UTFPRAula Introdução a VRaptor 4 - Pós Java UTFPR
Aula Introdução a VRaptor 4 - Pós Java UTFPR
 

Similaire à Gradle spring-hateoas-Lombok

ASP.NET 5 - Novidades do Desenvolvimento Web em .NET (Agosto/2015)
ASP.NET 5 - Novidades do Desenvolvimento Web em .NET (Agosto/2015)ASP.NET 5 - Novidades do Desenvolvimento Web em .NET (Agosto/2015)
ASP.NET 5 - Novidades do Desenvolvimento Web em .NET (Agosto/2015)
Renato Groff
 
ASP.NET MVC - Alexandre Tarifa
ASP.NET MVC - Alexandre TarifaASP.NET MVC - Alexandre Tarifa
ASP.NET MVC - Alexandre Tarifa
guestea329c
 

Similaire à Gradle spring-hateoas-Lombok (20)

Design Patterns
Design PatternsDesign Patterns
Design Patterns
 
ASP.NET 5 - Novidades do Desenvolvimento Web em .NET
ASP.NET 5 - Novidades do Desenvolvimento Web em .NETASP.NET 5 - Novidades do Desenvolvimento Web em .NET
ASP.NET 5 - Novidades do Desenvolvimento Web em .NET
 
ASP.NET 5 - Novidades do Desenvolvimento Web em .NET (Agosto/2015)
ASP.NET 5 - Novidades do Desenvolvimento Web em .NET (Agosto/2015)ASP.NET 5 - Novidades do Desenvolvimento Web em .NET (Agosto/2015)
ASP.NET 5 - Novidades do Desenvolvimento Web em .NET (Agosto/2015)
 
Angular js
Angular jsAngular js
Angular js
 
Treinamento Básico Sobre ASP.NET MVC
Treinamento Básico Sobre ASP.NET MVCTreinamento Básico Sobre ASP.NET MVC
Treinamento Básico Sobre ASP.NET MVC
 
Introdução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular jsIntrodução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular js
 
ASP.NET MVC - Alexandre Tarifa
ASP.NET MVC - Alexandre TarifaASP.NET MVC - Alexandre Tarifa
ASP.NET MVC - Alexandre Tarifa
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
 
Asp net mvc
Asp net mvcAsp net mvc
Asp net mvc
 
Microsoft ALM = Produtividade
Microsoft ALM = ProdutividadeMicrosoft ALM = Produtividade
Microsoft ALM = Produtividade
 
Angular 2
Angular 2Angular 2
Angular 2
 
Apresentação mvc
Apresentação mvcApresentação mvc
Apresentação mvc
 
ApresentaçãO Mvc
ApresentaçãO MvcApresentaçãO Mvc
ApresentaçãO Mvc
 
Apresentação M V C
Apresentação M V CApresentação M V C
Apresentação M V C
 
Infoeste 2014 - Desenvolvimento de um CMS com Codeigniter Framework(PHP)
Infoeste 2014 - Desenvolvimento de um CMS com Codeigniter Framework(PHP)Infoeste 2014 - Desenvolvimento de um CMS com Codeigniter Framework(PHP)
Infoeste 2014 - Desenvolvimento de um CMS com Codeigniter Framework(PHP)
 
Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Treinamento ASP.NET 2014
Treinamento ASP.NET 2014
 
Jheat
JheatJheat
Jheat
 
Introdução ASP.NET Core
Introdução ASP.NET CoreIntrodução ASP.NET Core
Introdução ASP.NET Core
 
Arquitetura Model View Controller
Arquitetura Model View ControllerArquitetura Model View Controller
Arquitetura Model View Controller
 
Historia do mvc, mvp e mvvm no android
Historia do mvc, mvp e mvvm no androidHistoria do mvc, mvp e mvvm no android
Historia do mvc, mvp e mvvm no android
 

Plus de DanielChristofolli (6)

Docker
DockerDocker
Docker
 
Design patterns - Gang of Four - Observer e Prototype
Design patterns - Gang of Four - Observer e PrototypeDesign patterns - Gang of Four - Observer e Prototype
Design patterns - Gang of Four - Observer e Prototype
 
Soa x microservices e versionamento de contrato de API
Soa x microservices e versionamento de contrato de APISoa x microservices e versionamento de contrato de API
Soa x microservices e versionamento de contrato de API
 
Api best practices - SOAP vs REST
Api best practices - SOAP vs RESTApi best practices - SOAP vs REST
Api best practices - SOAP vs REST
 
Princípios de Programação Orientada a Objetos Solid, dry e kiss
Princípios de Programação Orientada a Objetos Solid, dry  e kiss Princípios de Programação Orientada a Objetos Solid, dry  e kiss
Princípios de Programação Orientada a Objetos Solid, dry e kiss
 
Novidades java 8, 9, 10 e11
Novidades java 8, 9, 10 e11Novidades java 8, 9, 10 e11
Novidades java 8, 9, 10 e11
 

Dernier

Dernier (8)

Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.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
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 

Gradle spring-hateoas-Lombok

  • 1.
  • 2. Gradle ● Automação de build ● Tasks => passos que o Gradle executa para executar o build ● build.gradle => adicionar subprojetos, modificar parâmetros de linha de comando
  • 3. Gradle ● settings.gradle => script com plugins e dependências do projeto ● gradle.properties => arquivo com configurações simples do projeto
  • 4. Multi Project Características ● Sistema subdividido em módulos ● Um ou mais módulos ligados a um build.gradle
  • 5. Multi Project Vantagens ● Facilita a manutenção e escalabilidade do código ● Facilita a divisão do trabalho em time ● Deixa o código mais bonito e elegante
  • 6. Plugins ● Conjuntos de tasks ● Estendem os recursos do projeto ● Aplicam configurações específicas (por exemplo, adicionando repositórios organizacionais ou impondo padrões)
  • 7. Plugins Vantagens ● Promove a reutilização e reduz a sobrecarga de manter uma lógica semelhante em vários projetos ● Permite um maior grau de modularização, melhorando a compreensibilidade e a organização ● Encapsula a lógica imperativa e permite que os scripts de construção sejam o mais declarativos possível
  • 8. Inversão de Controle Inversão de Controle é uma forma diferente que temos para manipular o controle sobre um objeto. É um padrão. Pode se dizer que é a mudança de conhecimento que uma classe tem em relação à outra.
  • 9. public class VendaDeProduto { public void vendeProduto(Produto produto) { //Todo o código para a venda do produto... Log log = new Log("Arquivo.txt"); log.grava(produto); } }
  • 10. Injeção de dependência Injeção de dependência é uma técnica utilizada para diminuir o acoplamento entre classes. Algumas formas de fazermos a Injeção de Dependência: ● Constructor Injection ● Getters & Setters ● Autowired
  • 11. public class VendaDeProduto { private Log log; public void VendaDeProduto(Log logVenda) { log = logVenda; } public void vendeProduto(Produto produto) { //Todo o código para a venda do produto... log.grava(produto); } }
  • 12.
  • 13. Spring ● É um framework Java criado com o objetivo de facilitar o desenvolvimento de aplicações ● Explora os conceitos de Inversão de Controle e Injeção de Dependências ● Fornece módulos de integração, segurança, testes e desenvolvimento web, entre outros
  • 14. Spring Boot O Spring Boot é uma ferramenta que visa facilitar o processo de configuração e publicação de aplicações que utilizem o ecossistema Spring.
  • 15. Spring Web MVC Spring MVC é um framework JAVA, que implementa o design pattern MVC. ● Model => Lógica da aplicação (serviços, repositórios e entidades). ● Control => Recebe as informações do usuário, envia para a Model e retorna os dados requisitados para a View. ● View => Saída de representação de dados.
  • 16. HATEOAS ● Navegação dinâmica entre endpoints através de links adicionados aos dados ● Essa combinação representa o estado do sistema ● Reforça o stateless => O servidor não precisa manter registro da sessão: o próprio cliente sabe que as únicas transições possíveis são aquelas para as quais existe um link disponível
  • 17. Exemplo de Hateoas ● rel => Nesse caso o link faz referência à própria pessoa; ● href => URL completa que define um único recurso Objeto Cliente JSON simples JSON Hateoas
  • 18. LOMBOK O Lombok é uma biblioteca Java focada em produtividade e redução de código boilerplate que por meio de anotações adicionadas ao nosso código ensinamos o compilador (maven ou gradle) durante o processo de compilação a criar código Java. @AllArgsConstructor => Construtor padrão com todos os argumentos @NoArgsConstructor => Construtor vazio @ToString => Cria uma toString @EqualsAndHashCode => Cria hashcode e equals
  • 19. LOMBOK @Getter => Gera apenas getters @Setter => Gera apenas setters @RequiredArgsConstructor => Gera um construtor com um argumento por campo final @Data => Todos juntos agora: um atalho para @ToString, @EqualsAndHashCode, @Getter em todos os campos e @Setter em todos os campos não-finais, e @RequiredArgsConstructor @Builder => Cria objetos com facilidade @Synchronized => sincroniza as threads