Java Springboot
Java Springboot
INTRODUÇÃO
2. Embutido: Spring Boot inclui servidores de aplicação embutidos, como Tomcat, Jetty ou Undertow, o que significa
que você pode executar seu aplicativo como um JAR independente ou como um executável.
3. Opinião sobre Convenção: O Spring Boot segue a abordagem de "opinião sobre convenção", o que significa que
ele fornece padrões e recomendações sobre como organizar o código e a estrutura do projeto. Isso ajuda a reduzir
a quantidade de decisões que os desenvolvedores precisam tomar.
5. Spring Boot Starter: Fornece pacotes prontos para uso (Starter POMs) que facilitam a inclusão de funcionalidades
específicas, como persistência de dados, segurança, entre outras.
API REST:
O termo "REST" significa "Representational State Transfer" e é um estilo arquitetural que define um conjunto de
restrições e princípios para o design de serviços web.
Uma API REST é uma interface que segue os princípios do REST. Ela utiliza os métodos HTTP (GET, POST, PUT,
DELETE, etc.) para realizar operações em recursos, e os recursos são identificados por URLs.
Uma API REST não precisa seguir rigorosamente todos os princípios do REST, mas geralmente adere a eles de
alguma forma.
API RESTful:
Uma API é considerada "RESTful" quando adere de maneira mais estrita aos princípios do REST.
Principais princípios do REST que uma API RESTful geralmente segue incluem a utilização de métodos HTTP
apropriados para ações específicas (GET para recuperar informações, POST para criar, PUT para atualizar, DELETE
para excluir) e a representação dos recursos no formato apropriado, como JSON ou XML.
Uma API RESTful deve ser stateless (sem estado), o que significa que cada solicitação do cliente para o servidor deve
conter todas as informações necessárias para entender e processar a solicitação. Não deve depender de nenhum
estado armazenado no servidor entre as solicitações.
Funcionamento
Resumo do projeto
Para exemplificar sobre o Spring Boot, faremos uma pequena aplicação de cadastro de produtos utilizando uma API
RESTful. Para realizar os testes e consumir a API, podemos tanto realizar requisições via Postman ou criar uma
página com a função fetch do JavaScript.
Criação do projeto
Há diversas formas de inicializar um projeto SpringBoot. Contudo, utilizaremos a plataforma do Spring Initializer
escolhendo as dependências Spring Web, Spring Data, Hibernate Validation e PostgreSQL para gerar um projeto
“base”. Após isso, basta realizar o import na IDE de escolha.
Data Base e Entitys
Ao realizar a inicialização do projeto, o Spring automaticamente irá buscar a conexão com a base de dados para
conseguir realizar a persistência dos dados. Para configurar tal conexao, podemos acessar o arquivo
application.properties. Nele, colocaremos os seguintes dados:
spring.datasource.url=jdbc:postgresql://localhost:5432/products
spring.datasource.username=postgres
spring.datasource.password=234588
spring.datasource.driver-class-name=org.postgresql.Driver
# Configurações do Hibernate
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true
Após isso, criaremos então o primeiro model com a anotação @Entity dentro do pacote
com.exemplo.springboot.models. Com tal anotação, será possível o rastreamento pelo Hibernate e criação
automática de tabelas no banco de dados:
package com.example.springboot.models;
import java.io.Serializable;
import jakarta.persistence.Entity;
import jakarta.persistence.Table;
@Entity
@Table(name = "TB_PRODUCT")
Nosso model, portanto, terá um idProduct, name e value. É importante realizar a marcação do idProduct com o
@Id e @GeneratedValue(strategy = GenerationType.AUTO) para que o Hibernate localize o valor como chave
estrangeira da nossa tabela e para que não seja necessário informá-lo sempre que formos realizar um insert.
@Id
@GeneratedValue(strategy = GenerationType.AUTO )