Spring Boot项目分层架构
在一个的springboot当中,controller,servicem,pojo,mapper,以及其他的文件夹,这些文件一般是分别用来干嘛的?
在Spring Boot项目中,分层架构是一种常见的项目结构模式。它将项目的代码划分为不同的层,不同的文件夹和文件通常用于组织项目的不同部分,每个部分都有特定的职责和功能。以下是这些文件夹的常见用途:
Controller:
- 职责:处理HTTP请求并返回响应。
- 位置:通常位于
com.example.projectname.controller
包中。 - 作用:Controller类通常使用
@RestController
或@Controller
注解标注,包含映射请求路径的方法(使用@RequestMapping
、@GetMapping
、@PostMapping
等注解),负责处理客户端的请求,调用Service层处理业务逻辑,并将结果返回给客户端。
Service:
- 职责:处理具体的业务逻辑。
- 位置:通常位于
com.example.projectname.service
包中。 - 作用:Service类通常使用
@Service
注解标注,封装和实现项目的核心业务逻辑,负责与数据层(DAO或Repository层)交互。Service层通常会调用Mapper或Repository接口来进行数据库操作。
POJO (Plain Old Java Object):
- 职责:表示项目中的数据对象或实体类。
- 位置:通常位于
com.example.projectname.pojo
或com.example.projectname.model
包中。 - 作用:POJO类包含项目中的数据结构定义,通常包含属性、构造方法、getter和setter方法。POJO类可以通过
@Entity
注解标注(如果使用JPA),也可以包含数据验证注解(如@NotNull
、@Size
等)。
Mapper:
- 职责:数据库操作接口,用于MyBatis或类似的ORM框架。
- 位置:通常位于
com.example.projectname.mapper
包中。 - 作用:Mapper接口通常使用
@Mapper
注解标注,定义了数据库操作方法(如insert
、update
、delete
、select
等),这些方法通常与XML映射文件或注解(如@Select
、@Insert
等)绑定,实现数据库CRUD操作。
Repository:
- 职责:数据访问层接口,用于Spring Data JPA等。
- 位置:通常位于
com.example.projectname.repository
包中。 - 作用:Repository接口通常继承
JpaRepository
、CrudRepository
或PagingAndSortingRepository
接口,提供标准的数据访问方法(如save
、findById
、findAll
等),用于与数据库交互。
其他文件夹:
- Config:用于存放配置类,通常位于
com.example.projectname.config
包中,包含项目的各种配置类(如数据库配置、Swagger配置、安全配置等)。 - Utils:用于存放工具类,通常位于
com.example.projectname.util
包中,包含各种辅助方法或工具类。 - DTO(Data Transfer Object):用于数据传输对象,通常位于
com.example.projectname.dto
包中,定义用于在各层之间传输的数据结构。
这种分层架构有助于项目的模块化和维护,使得项目结构清晰,职责分明,便于开发、测试和扩展。
【转载自:】开思通智网
【原文链接:】https://www.opensnn.com/os/article/10000757