Springboot项目的目录结构

src/main/java: 存放Java源代码文件。

com.项目名.demo: 项目的基础包。

1. Controller 层 (控制器层)
  • 位置 :com.xxx.controller
  • 职责: 处理 HTTP 请求,接收前端参数,调用 Service 层处理业务逻辑,返回响应
  • 特点 :
    • 使用@RestController@Controller注解
    • 方法上使用@GetMapping,@PostMapping等注解
    • 应保持简洁,只做参数校验和结果封装
2. Service 层 (服务层)
  • 位置 :com.xxx.service(接口) 和com.xxx.service.impl(实现)
  • 职责: 处理业务逻辑,组合多个 DAO 操作
  • 特点 :
    • 接口定义在service
    • 实现类放在service.impl
    • 使用@Service注解
    • 可进行事务管理 (@Transactional)
3. Repository/DAO/Mapper 层 (持久层)
  • 位置 :
    • JPA:com.xxx.repository
    • MyBatis:com.xxx.mapper
    • 通用:com.xxx.dao
  • 职责: 直接与数据库交互,执行 CRUD 操作
  • 特点 :
    • JPA 使用@Repository接口继承JpaRepository
    • MyBatis 使用@Mapper接口配合 XML
    • 只包含最基本的数据库操作
4. Domain/Entity 层 (实体层)
  • 位置 :com.xxx.domaincom.xxx.entity
  • 职责: 与数据库表对应的实体类
  • 特点 :
    • JPA 使用@Entity注解
    • MyBatis 通常不需要注解
    • 包含属性和基本的 getter/setter
5. DTO/VO/POJO 层 (数据传输对象)
  • 位置 :
    • com.xxx.dto(数据传输对象)
    • com.xxx.vo(视图对象)
    • com.xxx.pojo(简单Java对象)
  • 职责: 在不同层之间传输数据
  • 区别 :
    • DTO: 用于各层间的数据传输
    • VO: 专门为前端展示定制的数据对象
    • POJO: 最简单的Java对象,只有属性和getter/setter
6. 辅助结构
  • config :com.xxx.config

    • 存放各种配置类,如@Configuration
    • 安全配置、Swagger配置、拦截器配置等
  • util/tools :com.xxx.util

    • 存放工具类,如日期处理、字符串处理等
    • 应设计为静态方法
  • exception :com.xxx.exception

    • 自定义异常类
    • 全局异常处理器 (@ControllerAdvice)
  • interceptor :com.xxx.interceptor

    • 拦截器实现类
    • 实现HandlerInterceptor接口
  • constant :com.xxx.constant

    • 存放常量类
    • 如错误码、状态码等
  • enumeration :com.xxx.enums

    • 存放枚举类
    • 如订单状态、用户类型等
  • properties :com.xxx.properties

    • 自定义配置属性类
    • 配合@ConfigurationProperties使用
  • result :com.xxx.result

    • 统一返回结果封装
    • 包含状态码、消息和数据

src/main/resources: 存放资源文件。

static: 静态资源,如JS、CSS、图片。

templates: 模板文件,如Thymeleaf模板。

application.properties/yml: 应用配置文件。

src/test/java: 存放单元测试代码。

pom.xml: Maven构建文件,定义项目依赖和构建配置。Maven项目的配置文件,包含了项目的依赖管理和构建配置。通过配置pom.xml文件,可以定义项目的依赖关系、插件和构建过程。是Maven的项目描述文件,指定了当前工程为SpringBoot,并帮助我们声明了starter依赖的版本。同时,它还包含了项目的元数据(包名、项目名、版本号)以及指定的properties信息,例如指定Java的版本为1.8。

.gitignore: Git忽略文件配置。

mvnw和mvnw.cmd: Maven Wrapper文件,确保一致的Maven版本。

HELP.md: 项目帮助文档。

src/main/webapp: 存放Web资源文件,部署War包时使用。

target/: 存放编译后的文件,如.class文件和JAR包。

Dockerfile: 如果项目需要容器化部署,这个文件用于创建Docker镜像。

README.md: 项目的README文件,通常包含项目说明、构建步骤和使用方法。

LICENSE: 项目的许可证文件,说明项目的版权信息和使用条款。

.mvn/wrapper/: 包含Maven Wrapper的配置文件和jar包。

src/main/docker: 存放与Docker相关的文件,如组成Docker镜像的脚本。

src/main/scripts: 存放项目相关的脚本文件,如数据库迁移脚本。

src/main/assembly: 存放Maven Assembly插件的配置文件,用于项目打包。

src/main/resources/archetype-resources: 如果项目是一个Maven原型,这里存放原型的资源文件。

相关推荐
郑州光合科技余经理1 小时前
本地生活服务系统:成品模块和定制接口怎么划界
java·前端·人工智能·后端·系统架构·php·ai编程
萧瑟余晖1 小时前
Java深入解析篇三十三之密封类与接口(Sealed Classes)详解
java·开发语言
论迹复利5 小时前
FreeRTOS 在 RISC-V 上是如何“点火“的 —— 从 main() 到第一个任务的完整链路
java·开发语言·risc-v
张宇Joaquin5 小时前
鲲鹏统一并行加速库KUPL--众核并行能力介绍
java·开发语言·网络
宸津-代码粉碎机6 小时前
AI攻防战升级!基于Spring AI构建Java应用自动免疫安全体系
java·大数据·开发语言·人工智能·python·安全·spring
2601_963749106 小时前
越华环保集团数字化污水治理:端边云采集架构与平台对接实现
java·大数据·架构
朦胧之7 小时前
PostgreSQL 数据库笔记
人工智能·后端
xcLeigh7 小时前
Go入门:整数类型的溢出与安全边界
java·安全·golang
源码宝7 小时前
SpringBoot+Vue2 诊所门诊管理系统,完整前后端源码,可直接部署上线
java·源码·his系统·门诊系统·程序代码·诊所系统·门诊his
yychen_java7 小时前
九:Text-to-SQL 智能数据查询与 Human-in-the-Loop 人机协作
java·人工智能·架构