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 的数据传输安全性和简洁性。

上图

相关推荐
周杰伦_Jay4 小时前
【Spring Cloud Alibaba】微服务组件详解:电商场景落地实践
微服务·云原生·架构
码事漫谈5 小时前
C++ 多线程开发:从零开始的完整指南
后端
9ilk5 小时前
【C++】--- 特殊类设计
开发语言·c++·后端
码事漫谈5 小时前
十字路口的抉择:B端与C端C++开发者的职业路径全解析
后端
老前端的功夫6 小时前
Vue 3 性能深度解析:从架构革新到运行时的全面优化
javascript·vue.js·架构
提笔了无痕6 小时前
git基本了解、常用基本命令与使用
git·后端
unique_perfect7 小时前
vue2与springboot实现deepseek打印机聊天
spring boot·websocket·ai·vue2·deepseek
java1234_小锋7 小时前
Spring IoC的实现机制是什么?
java·后端·spring
喵个咪7 小时前
开箱即用的 GoWind Admin|风行,企业级前后端一体中后台框架:JWT 集成指南
后端·go
绝不收费—免费看不了了联系我7 小时前
Fastapi的单进程响应问题 和 解决方法
开发语言·后端·python·fastapi