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
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