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 分钟前
一篇文章带你入门OpenSpec
后端
韩楚风10 分钟前
【参天引擎】事务生命周期 / MVCC / Undo / ACID / 分布式事务 功能域整体解析
数据库·分布式·mysql·架构·cantian
通问AI16 分钟前
Apple Intelligence 国行备案深度技术解析:阿里千问如何被集成到苹果端侧AI架构
人工智能·架构
明航咨询—张老师18 分钟前
软考软件评测师技术深度剖析:2026年考试改革后的知识体系与备考架构
大数据·架构
阿维的博客日记42 分钟前
MultipartFile 是不是表示仅仅是一个分片?
java·后端·spring·multipartfile
海上彼尚1 小时前
Nodejs也能写Agent - 16.LangGraph篇 - 条件分支与循环
前端·后端·langchain·node.js
研究员子楚2 小时前
GEO行业发展标准体系白皮书V2.0-第10卷 · 全球篇:跨国标准协同与全球品牌语义治理框架
数据库·人工智能·microsoft·架构·geo
Dovis(誓平步青云)2 小时前
远程办公软件文件传输实测:6 款工具的速度、稳定性和办公体验对比
linux·运维·服务器·后端·生成对抗网络
凌虚3 小时前
AI 时代,程序员会消失吗?
人工智能·后端·程序员