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
- JPA:
- 职责: 直接与数据库交互,执行 CRUD 操作
- 特点:
- JPA 使用
@Repository
接口继承JpaRepository
- MyBatis 使用
@Mapper
接口配合 XML - 只包含最基本的数据库操作
- JPA 使用
4. Domain/Entity 层 (实体层)
- 位置:
com.xxx.domain
或com.xxx.entity
- 职责: 与数据库表对应的实体类
- 特点:
- JPA 使用
@Entity
注解 - MyBatis 通常不需要注解
- 包含属性和基本的 getter/setter
- JPA 使用
5. DTO/VO/POJO 层 (数据传输对象)
- 位置:
com.xxx.dto
(数据传输对象)com.xxx.vo
(视图对象)com.xxx.pojo
(简单Java对象)
- 职责: 在不同层之间传输数据
- 区别:
- DTO: 用于 Controller 与 Service 之间的数据传输
- 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原型,这里存放原型的资源文件。