JayCesar / generation-bootcamp

[💻 Bootcamp ] Um programa de estudos de 3 meses da Generation Brasil, sendo cada qual destinado a diferentes tecnologias.
4 stars 0 forks source link

Spring | Primeiros passos #19

Closed JayCesar closed 1 year ago

JayCesar commented 1 year ago

Primeiros passos com Spring BOOT

O Spring Boot é uam ferramente que tem como objetivo facilitar o processo de configuração e publicação de aplicações que utilizem o ecossistema Sptrin.

O Spring Boot fornece a maioria dos componentes baseados no Spring, necessários em aplicações de maneira pré-configurada, tornando possível termos uma aplicação rodando em produção rapidamente e com o esforço mínimo de configuração e implantação.

Para facilitar ainda mais, o Spring disponibiliza a página Spring Initializr. Nesta página, com alguns poucos cliques, você pode criar um projeto inteiro.

No final, a página irá gerar um projeto Maven ou Gradle, que são gerenciadores de dependências da linguagem Java (semelhante ao NPM do JavaScript/Typescript), pré-configurado e com todos os componentes solicitados especificados. Nossos projetos Spring Boot utilizarão o Maven como Gerenciador Dependências.

Apache Maven

A palavra Maven significa acumulador de conhecimento. No Universo Java, o Maven é uma ferramenta usada para construir e gerenciar qualquer projeto Java, tornando o trabalho diário dos desenvolvedores mais fácil, além de simplificar a compreensão de qualquer projeto baseado na linguagem Java.

O Maven possui as seguintes características:

1.1 Gerenciador de dependências O Maven é responsável por fazer o download das bibliotecas que você vai precisar no seu projeto. Para efetuar esta tarefa, o Maven utiliza o arquivo pom.xml, onde você precisa declarar todas as dependências necessárias para o seu projeto.

1.2 Repositório central Todas as ferramentas e bibliotecas utilizadas nos projetos Spring Boot estão disponíveis em um único servidor na nuvem chamado Maven Central Repository. O Maven Repository facilita e centraliza o download de todas as dependências independente de serem as oficiais do Spring ou Desenvolvidas por outras Empresas ou Pessoas Desenvolvedoras (Lombok, Flyway, MOckito, entre outras), dispensando a necessidade de procurar as dependências no Google, por exemplo.

1.3 Automatizador de tarefas Um projeto que possui muitas bibliotecas e muitas dependências gera alguns problemas no dia a dia, tais como: manter todas atualizadas, fazer o build da sua aplicação, realizar alguns testes e etc. O MAVEN auxilia nestes e outros processos através dos seus scripts prontos que automatizam todas estas tarefas.


📌 Anotações da aula:

Dependências são como ferramentas / biliotecas necessárias para o projeto funcionar.

Dentro da aplication.properties é onde eu irei configurar o banco de dados:

2023-06-22_11h49_13

JayCesar commented 1 year ago

Como funciona um projeto SPRING BOOT?

  1. A Classe Principal, que possui o Método main, inicia um servidor WEB (TOMCAT), que vai gerenciar todas as URL's (Endpoints) disponíveis na API.
  2. Cada URL deve ser mapeada para um determinado Método de uma Classe.
  3. A execução desse Método retornará uma resposta quando acionamos a URL.
  4. A partir daí, criamos nossos objetos que implementarão todas as lógicas necessárias.

2.1 Como planejar um projeto SPRING BOOT?

Quais ENDPOINTS vamos oferecer? (Um Endpoint é uma URL associada a um Método do protocolo HTTP: GET, POST, PUT, DELETE).

Em geral, temos 1 Endpoint para cada Método HTTP (podemos ter mais de um desde que os endereços sejam diferentes), em cada objeto do nosso modelo de negócios:

Objeto de Negócios: PRODUTO

Entendendo a Estrutura do nosso projeto

Item Descrição
src/main/java Source Folder mais importante da aplicação, onde será desenvolvido todo o código da nossa aplicação dentro do pacote principal (em nosso exemplo: com.helloworld.helloworld).Dentro deste pacote existe um arquivo com o nome do projeto + a palavra Application (em nosso exemplo: HelloworldApplication.java), que é responsável por inicializar a aplicação (Classe Main).Não apague este arquivo ou altere a estrutura de pastas do projeto.
src/main/resources Source Folder responsável por manter os recursos da aplicação, ou seja, os arquivos de configuração do projeto. O mais importante deles é o application.properties, que é o responsável por manter as configurações de Data, Hora, Fuso-horário, Banco de Dados, entre outras.
src/test/java Source Folder onde serão desenvolvidas as Classes de Teste da aplicação, dentro do pacote de testes.Observe que o nome do pacote é o mesmo do pacote da Source Folder Principal.
JRE System Library Neste pacote, o Maven faz o download do Compilador Java (JDK) durante a importação do projeto para o STS
Maven Dependencies Neste pacote, o Maven faz o download de todas as Dependências inseridas no projeto (ver arquivo pom.xml) durante a importação do projeto para o STS
pom.xml O Project Object Model (POM) é o arquivo principal de configuração do Maven. É um arquivo XML que contém informações sobre o projeto e detalhes de configuração usados pelo Maven para construir o projeto.Não apague este arquivo e ao fazer alterações tenha muito cuidado para manter a estrutura do arquivo.
JayCesar commented 1 year ago

Documento: https://github.com/rafaelq80/cookbook_spring_v3/blob/main/03_spring/02.md