Logo Passei Direto
Buscar

AULA_3_-_DESENVOLVIMENTO_WEB_FULL_MVC pptx

Ferramentas de estudo

Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

Desenvolvimento Web Full MVC
Estrutura básica do Maven
src/
 main/
 java/ → código-fonte
 resources/ → arquivos de configuração
 test/
 java/ → testes unitários
target/ → diretório de saída (build)
pom.xml → arquivo principal de configuração
O pom.xml
 
 org.springframework.boot
 spring-boot-starter-web
 2.7.5
 
➔ Arquivo XML que centraliza as configurações do projeto.
Contém:
● Informações do projeto: nome, versão, descrição.
● Dependências: bibliotecas externas necessárias.
● Plugins: tarefas adicionais (compilação, testes, empacotamento).
● Configuração do build.
O ciclo de vida do maven
mvn clean install
➔ O Maven possui fases pré-definidas:
● clean → remove arquivos gerados em builds anteriores.
● compile → compila o código fonte.
● test → executa os testes automatizados.
● package → empacota o projeto (gera .jar ou .war).
● install → instala no repositório local.
● deploy → publica no repositório remoto.
Benefícios do maven
➔ Padronização do ciclo de vida do build.
➔ Gerenciamento automático de dependências (inclusive transitivas).
➔ Integração com ferramentas (Jenkins, SonarQube, Docker, etc).
➔ Reutilização: módulos podem ser compartilhados entre projetos.
➔ Comunidade grande: vasto repositório central (Maven Central).
Projeto
Projeto
Projeto
Projeto
Projeto
Projeto
Projeto
Projeto
Projeto Eclipse
Projeto Eclipse
Projeto Eclipse
Projeto Eclipse
Projeto Eclipse
 
 
 
 org.springframework.boot
 spring-boot-starter-web
 
 
 org.springframework.boot
 spring-boot-starter
 
 
 org.springframework.boot
 spring-boot-starter-test
 test
 
 
Projeto Eclipse
package com.example.demo;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class MensagemController {
 @GetMapping("/hello")
 public String hello() {
 return "Olá, alunos! 🚀 Esse é um exemplo com Spring Boot.";
 }
}
Projeto Eclipse
mvn clean install -> No Terminal
mvn spring-boot:run
Projeto
Projeto
 
 
 org.springframework.boot
 spring-boot-starter
 
 
 org.springframework.boot
 spring-boot-starter-web
 
 
 org.springframework.boot
 spring-boot-starter-thymeleaf
 
 
 org.springframework.boot
 spring-boot-starter-test
 test
 
 
Projeto
package com.example.demomvc.model;
public class Mensagem {
 private String texto;
 public Mensagem(String texto) {
 this.texto = texto;
 }
 public String getTexto() {
 return texto;
 }
 public void setTexto(String texto) {
 this.texto = texto;
 }
}
Projeto
package com.example.demomvc.service;
import com.example.demomvc.model.Mensagem;
import org.springframework.stereotype.Service;
@Service
public class MensagemService {
 public Mensagem getMensagem() {
 return new Mensagem("Olá, bem-vindo ao projeto Spring Boot com MVC!");
 }
}
Projeto
package com.example.demomvc.controller;
import com.example.demomvc.service.MensagemService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class HomeController {
 @Autowired
 private MensagemService mensagemService;
 @GetMapping("/")
 public String home(Model model) {
 model.addAttribute("mensagem", mensagemService.getMensagem());
 return "home"; // renderiza home.html
 }
}
Projeto
 Spring Boot MVC Demo
 
 Mensagem
Projeto
Vantagens do H2
➔ Integração Simples
◆ Configuração automática com Spring Boot
◆ Não requer instalação externa
➔ Banco em Memória (Ideal para Testes)
◆ Criação e descarte automático dos dados
◆ Excelente para ambiente de desenvolvimento e testes unitários
➔ Console Web Embutido
◆ Interface web para consultas SQL
◆ Acesso via /h2-console
➔ Compatibilidade com JPA/Hibernate
◆ Permite testar entidades e repositórios
◆ Facilita migração para outros bancos (PostgreSQL, MySQL etc.)
➔ Leveza e Rapidez
◆ Roda em memória, inicialização rápida
◆ Perfeito para prototipagem
➔ Útil para Prototipagem e Estudos
◆ Acelera o aprendizado e a criação de provas de conceito
◆ Sem a necessidade de configurar banco de dados robusto
Projeto
Projeto
 
 
 org.springframework.boot
 spring-boot-starter
 
 
 org.springframework.boot
 spring-boot-starter-web
 
 
 org.springframework.boot
 spring-boot-starter-thymeleaf
 
 
 org.springframework.boot
 spring-boot-starter-data-jpa
 
 
 org.springframework.boot
 spring-boot-starter-test
 test
 
 
 com.h2database
 h2
 runtime
 
 
Projeto
spring.application.name=primeiro_projeto
# Configuração do banco H2 em memória
spring.datasource.url=jdbc:h2:mem:demodb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
# Dialeto do Hibernate
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.jpa.hibernate.ddl-auto=update
# Habilitar console H2
spring.h2.console.enabled=true
spring.h2.console.path=/h2-console
Projeto
package com.example.demomvc.model;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
@Entity
public class Produto {
 @Id
 @GeneratedValue (strategy = GenerationType .IDENTITY)
 private Long id;
 private String nome;
 private Double preco;
 public Produto() {}
 public Produto(String nome, Double preco) {
 this.nome = nome;
 this.preco = preco;
 }
 public Long getId() { return id; }
 public String getNome() { return nome; }
 public void setNome(String nome) { this.nome = nome; }
 public Double getPreco() { return preco; }
 public void setPreco(Double preco) { this.preco = preco; }
}
Projeto
package com.example.demomvc.repository;
import com.example.demomvc.model.Produto;import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface ProdutoRepository extends JpaRepository {
}
Projeto
package com.example.demomvc.controller;
import com.example.demomvc.model.Produto;
import com.example.demomvc.repository.ProdutoRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping ("/produtos" )
public class ProdutoController {
 @Autowired
 private ProdutoRepository produtoRepository ;
 // Listar todos
 @GetMapping
 public List listar() {
 return produtoRepository .findAll();
 }
 // Adicionar novo produto
 @PostMapping
 public Produto adicionar(@RequestBody Produto produto) {
 return produtoRepository .save(produto);
 }
}
Projeto
Atividade
1. Realizar o método de atualizar
2. Realizar o método de deletar
Resolução
import java.util.List;
import java.util.Optional;
 @PutMapping("/{id}")
 public Produto atualizar(@PathVariable Long id, @RequestBody Produto produtoAtualizado) {
 Optional produtoExistente = produtoRepository.findById(id);
 if (produtoExistente.isPresent()) {
 Produto produto = produtoExistente.get();
 produto.setNome(produtoAtualizado.getNome());
 produto.setPreco(produtoAtualizado.getPreco());
 return produtoRepository.save(produto);
 } else {
 throw new RuntimeException("Produto não encontrado com id " + id);
 }
 }
Resolução
 @DeleteMapping("/{id}")
 public String deletar(@PathVariable Long id) {
 if (produtoRepository.existsById(id)) {
 produtoRepository.deleteById(id);
 return "Produto com id " + id + " deletado com sucesso!";
 } else {
 return "Produto com id " + id + " não encontrado!";
 }
 }

Mais conteúdos dessa disciplina