Spring Boot3项目的常见通用整体架构

Spring Boot 3 项目的整体架构。

1. IDEA创建项目

xml 复制代码
<properties>
        <java.version>17</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

2. 基本项目结构

Spring Boot 项目通常遵循约定优于配置的原则,标准结构如下:

复制代码
├── src/main/java
│   └── com.example.project
│       ├── config          # 配置类
│       ├── controller      # 控制器类,处理HTTP请求
│       ├── service         # 服务层,包含业务逻辑
│       ├── repository      # 数据访问层,通常使用 Spring Data JPA 或 MyBatis
│       ├── model           # 实体类,通常对应数据库表
│       ├── dto             # 数据传输对象,用于封装请求和响应数据
│       ├── exception       # 自定义异常类
│       ├── util            # 工具类
│       └── Application.java# 主应用类,包含 main 方法
├── src/main/resources
│   ├── application.yml     # Spring Boot 配置文件
│   ├── static              # 静态资源,如 HTML、CSS、JS 文件
│   └── templates           # 模板文件(如 Thymeleaf 模板)
└── src/test/java           # 测试代码

3. 分层架构

  • Controller 层 :
    • 处理 HTTP 请求,解析请求参数,调用服务层,并返回响应数据。
    • 使用注解 @RestController 或 @Controller。
  • Service 层 :
    • 包含业务逻辑,通常与一个或多个 Repository 交互。
    • 使用注解 @Service。
  • Repository 层 :
    • 负责数据的持久化操作,通常使用 Spring Data JPA 或 MyBatis 实现。
    • 使用注解 @Repository。
  • Model 层 :
    • 定义领域对象或实体类,通常对应数据库表。
  • DTO(Data Transfer Object)层 :
    • 用于封装请求和响应的数据,确保 API 的数据传输安全性和简洁性。

上图

相关推荐
橙子家4 分钟前
参数校验类异常(Argument Exception)【C# Exception 详解系列一】
后端
掘金挖土22 分钟前
前端手摸手跑路之 AI 应用开发(九)
前端·后端
全栈弄潮儿1 小时前
Python实战第8期:函数
后端·python·编程语言
码事漫谈1 小时前
你让 AI “尽力做”,它反而可能做不好
后端
孟健2 小时前
LLM API 安全防线:从 OpenCode 盗刷事件到 LiteLLM 多模型容灾实操
人工智能·后端·架构
程序员cxuan2 小时前
我用 WorkBuddy + ima 把公众号文章做成了知识库。
人工智能·后端·程序员
程序员cxuan2 小时前
玩了一天 REA,我号快没了
人工智能·后端·程序员
卷无止境3 小时前
暗流与破局:AI时代的代码安全审查工具全景指南
后端·python
smallyoung3 小时前
告别N+1:Spring Boot 一键数据翻译框架体系
java·后端·架构
程序猿DD3 小时前
OctaFuse Gateway 2.16.0:新增 ElevenLabs 的支持、厂商原生端点重构、后台管理优化
后端