SlideShare uma empresa Scribd logo
Gradle spring-hateoas-Lombok
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);
}
}
Gradle spring-hateoas-Lombok
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

Mais conteúdo relacionado

PDF
Aula parte 2 de JSF 2.2
ODP
Arquitetura MVC, JavaBeans e DAO
PDF
Framework web 02 - 2016
PDF
Spring Security e Spring Boot Aula - 2018
PPTX
ASP.NET MVC
PDF
Framework web 3 - JSF + Spring boot
PDF
Framework web 01 - Aula UTFPR 2018
Aula parte 2 de JSF 2.2
Arquitetura MVC, JavaBeans e DAO
Framework web 02 - 2016
Spring Security e Spring Boot Aula - 2018
ASP.NET MVC
Framework web 3 - JSF + Spring boot
Framework web 01 - Aula UTFPR 2018

Mais procurados (20)

PPTX
ASP .NET MVC na Prática
PPTX
Campus Party 2014 - Desenvolvimento Web com ASP.NET
PPTX
Como trabalhar com angular js
PPTX
Introdução ao Spring Framework MVC
PDF
TDC 2014 - Arquitetura front-end com AngularJS
PPTX
Introdução Ao Spring Com Spring Boot
PDF
Minicurso Aplicação Web Utilizando o Framework Laravel
PPSX
Comunicação em Tempo Real com ASP.Net SignalR
PDF
Angular js
PDF
Aula parte 1 de JSF 2.2
PPTX
JSF2 ScrumToys SestInfo 2010
PPT
Apresentação Facelets_UNIFEI
PPTX
Apresentação angular js
PPTX
Desenvolvendo aplicações com Angular e Laravel no Back-end
PPTX
Estudo de caso ASP.NET MVC e Silverlight
PPTX
Futuro do ASP.NET vNext - MVP ShowCast
PDF
PDF
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
PDF
Treinamento Play Framework
PDF
Aula Introdução a VRaptor 4 - Pós Java UTFPR
ASP .NET MVC na Prática
Campus Party 2014 - Desenvolvimento Web com ASP.NET
Como trabalhar com angular js
Introdução ao Spring Framework MVC
TDC 2014 - Arquitetura front-end com AngularJS
Introdução Ao Spring Com Spring Boot
Minicurso Aplicação Web Utilizando o Framework Laravel
Comunicação em Tempo Real com ASP.Net SignalR
Angular js
Aula parte 1 de JSF 2.2
JSF2 ScrumToys SestInfo 2010
Apresentação Facelets_UNIFEI
Apresentação angular js
Desenvolvendo aplicações com Angular e Laravel no Back-end
Estudo de caso ASP.NET MVC e Silverlight
Futuro do ASP.NET vNext - MVP ShowCast
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
Treinamento Play Framework
Aula Introdução a VRaptor 4 - Pós Java UTFPR
Anúncio

Semelhante a Gradle spring-hateoas-Lombok (20)

PDF
Aula 1 ASP.NET Core com arquitetura MVC
PPT
Design Patterns
PPTX
ASP.NET 5 - Novidades do Desenvolvimento Web em .NET
PPTX
ASP.NET 5 - Novidades do Desenvolvimento Web em .NET (Agosto/2015)
PPTX
Angular js
PPTX
Treinamento Básico Sobre ASP.NET MVC
PPTX
Introdução ao desenvolvimento front end usando bootstrap e angular js
PDF
ASP.NET MVC
PDF
ASP.NET MVC - Alexandre Tarifa
PPT
PPTX
Microsoft ALM = Produtividade
PPTX
Angular 2
PPTX
Apresentação mvc
PDF
ApresentaçãO Mvc
PDF
Apresentação M V C
PPTX
Infoeste 2014 - Desenvolvimento de um CMS com Codeigniter Framework(PHP)
PPTX
Treinamento ASP.NET 2014
PPTX
Introdução ASP.NET Core
PDF
Arquitetura Model View Controller
Aula 1 ASP.NET Core com arquitetura MVC
Design Patterns
ASP.NET 5 - Novidades do Desenvolvimento Web em .NET
ASP.NET 5 - Novidades do Desenvolvimento Web em .NET (Agosto/2015)
Angular js
Treinamento Básico Sobre ASP.NET MVC
Introdução ao desenvolvimento front end usando bootstrap e angular js
ASP.NET MVC
ASP.NET MVC - Alexandre Tarifa
Microsoft ALM = Produtividade
Angular 2
Apresentação mvc
ApresentaçãO Mvc
Apresentação M V C
Infoeste 2014 - Desenvolvimento de um CMS com Codeigniter Framework(PHP)
Treinamento ASP.NET 2014
Introdução ASP.NET Core
Arquitetura Model View Controller
Anúncio

Mais de DanielChristofolli (6)

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

Último (20)

PDF
Processos na gestão de transportes, TM100 Col18
PPTX
Aula sobre banco de dados com firebase db
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PDF
Apple Pippin Uma breve introdução. - David Glotz
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PPTX
Aula sobre desenvolvimento de aplicativos
PPTX
Curso de Java 12 - (JDBC, Transation, Commit e Rollback).pptx
PPTX
Curso de Java 14 - (Explicações Adicionais (Classes Abstrata e Interface)).pptx
PPTX
Curso de Java 15 - (Uso de Servlets (Entendendo a Estrutura)).pptx
PPTX
Curso de Java 11 - (Serializable (Serialização de Objetos)).pptx
PPTX
Aula 18 - Manipulacao De Arquivos python
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PPTX
Émile Durkheim slide elaborado muito bom
PPTX
Curso de Java 16 - (JEE (Utilizando o Padrão MVC)).pptx
PPTX
Curso de Java 10 - (IO Manipulação de Arquivos).pptx
PPTX
Curso de Java 9 - (Threads) Multitarefas.pptx
Processos na gestão de transportes, TM100 Col18
Aula sobre banco de dados com firebase db
Custos e liquidação no SAP Transportation Management, TM130 Col18
Apple Pippin Uma breve introdução. - David Glotz
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Aula sobre desenvolvimento de aplicativos
Curso de Java 12 - (JDBC, Transation, Commit e Rollback).pptx
Curso de Java 14 - (Explicações Adicionais (Classes Abstrata e Interface)).pptx
Curso de Java 15 - (Uso de Servlets (Entendendo a Estrutura)).pptx
Curso de Java 11 - (Serializable (Serialização de Objetos)).pptx
Aula 18 - Manipulacao De Arquivos python
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Émile Durkheim slide elaborado muito bom
Curso de Java 16 - (JEE (Utilizando o Padrão MVC)).pptx
Curso de Java 10 - (IO Manipulação de Arquivos).pptx
Curso de Java 9 - (Threads) Multitarefas.pptx

Gradle spring-hateoas-Lombok

  • 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); } }
  • 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