Introdução

Este artigo é destinado para todos aqueles que possuem conhecimento intermediário na linguagem de programação Java, incluindo também os conceitos e princípios da Programação Orientada a Objetos e conhecimentos conceituais básicos de SQL. Aos que são iniciantes e entusiastas da linguagem, indico o conteúdo do Gabriel Reis Duarte, responsável por fazer o Guia inicial de Java dentro da plataforma da Revelo para quem está começando. Também indico aos iniciantes a seguinte formação, cheia de exercícios práticos, da Universidade de Helsinki: Java Programming.

Este artigo está repleto de referências, não tenha medo de tirar um tempo para olhar ou ler na íntegra cada uma delas. Algumas estão em inglês, então também não tenha receio de utilizar ferramentas de tradução que vão te permitir um bom entendimento de algo que foi escrito em outro idioma.

Ao longo deste artigo, será iniciado a criação de uma API REST para gestão financeira usando os seguintes Frameworks: Spring, JPA, Hibernate e H2, cada um deles possui um propósito específico que será apresentado mais a frente. O sistema tem como base o diagrama de exemplo a seguir:

Imagem I - Diagrama do sistema de gerenciamento de finanças

Imagem I - Diagrama do sistema de gerenciamento de finanças

Não se preocupe em entender todo o diagrama agora com esta primeira imagem, tudo será apresentado aos poucos ao longo do artigo.

Devido à complexidade e profundidade do conteúdo, este artigo será dividido em três, portanto, segue o link para a segunda e para a terceira parte parte:

O projeto utilizado como base para este artigo se encontra no seguinte repositório do GitHub:

https://github.com/caiocv18/artigojava

Para que serve cada framework?

Antes de tudo, precisa-se entender o que é um framework e para que serve. Em poucas palavras, a tradução literal de “framework” é “ferramenta”, o framework é um conjunto de bibliotecas cheias de funções, estruturas e métodos que servem para facilitar o desenvolvimento de uma aplicação, nesse caso, serão utilizados frameworks diferentes para facilitar o desenvolvimento de partes diferentes do sistema.

Spring

O framework Spring possui diversas outras ferramentas dentro dele e, para este artigo, serão apresentados e utilizados apenas o Spring Boot e o Spring Web.

Spring Boot

O Spring Boot é responsável pela: configuração automática do projeto, usando como base as ferramentas de construção de projeto Maven ou Gradle;

Neste projeto, será utilizado Maven.

Spring Web