🚀 4.1 Arquitetura do Sistema Green Dog Delivery

Para o sistema principal, utilizaremos uma seleção criteriosa de tecnologias que garantem a harmonia entre produtividade e performance. O Spring Boot 3.5+ gerenciará o acoplamento entre esses componentes de forma transparente.

Seleção de Starters Premium

Ao criar o projeto springboot-greendogdelivery, selecionaremos os seguintes blocos fundamentais:

  • spring-boot-starter-data-jpa: O pilar da persistência, trazendo o Hibernate 6 e suporte total ao Jakarta EE 10.
  • spring-boot-starter-thymeleaf: Nosso motor de templates de alta fidelidade para páginas dinâmicas.
  • spring-boot-starter-web: Fornece a infraestrutura para controladores REST e o servidor Tomcat embutido.
  • spring-boot-starter-validation: (Adição Premium) Para garantir que nenhum dado inconsistente entre em nosso banco de dados.
  • spring-boot-starter-test: O arsenal completo com JUnit 5, Mockito e AssertJ.
  • lombok: Para redução drástica de código repetitivo em nossas entidades.

Por Que Jakarta EE 10?

NOTE

A partir do Spring Boot 3.0, houve a transição histórica do namespace javax.* para jakarta.*. Isso garante que sua aplicação Green Dog esteja utilizando as especificações mais modernas e otimizadas do Java para a nuvem.

Configuração no pom.xml

Seu arquivo de build deverá refletir estas escolhas, garantindo que o gerenciamento de versões seja herdado do pai (spring-boot-starter-parent):

<dependencies>
    <!-- Persistência de Elite -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <!-- Template Engine -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>
    <!-- Web Stack -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <!-- Testes de Alta Fidelidade -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

Estamos prontos para codificar as classes de domínio que darão vida ao negócio do Rodrigo.


⬅️ Capítulo Anterior | Próximo Capítulo ➡️