springboot中controller层 config层 dao层 service层 mapper 有什么联系关联
时间: 2025-06-05 09:50:24 浏览: 39
### Spring Boot 各层之间的交互与关联
#### 1. **Controller 层**
`Controller` 层作为应用的入口,主要负责接收 HTTP 请求并调用 `Service` 层完成具体的业务逻辑处理。它通过注解如 `@RestController` 或 `@Controller` 来标记,并利用 `@RequestMapping`, `@GetMapping`, `@PostMapping` 等注解定义接口路径和请求方式。
当接收到外部请求时,`Controller` 将参数传递给 `Service` 层进行进一步处理[^1]。完成后,再将结果返回给客户端。
```java
@RestController
@RequestMapping("/users")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/{id}")
public ResponseEntity<User> getUserById(@PathVariable("id") Long id) {
return new ResponseEntity<>(userService.getUserById(id), HttpStatus.OK);
}
}
```
---
#### 2. **Service 层**
`Service` 层是核心业务逻辑所在的地方,主要用于实现复杂的业务功能。该层会调用 `DAO/Mapper` 层执行数据库操作,并可能涉及多个 DAO 的协作。
此外,`Service` 层还承担事务管理的任务,确保数据的一致性和完整性。通常使用 `@Transactional` 注解来声明事务边界。
```java
@Service
@Transactional
public class UserService {
@Autowired
private UserDao userDao;
public User getUserById(Long id) {
return userDao.findById(id).orElse(null); // 调用 DAO 获取用户信息
}
public void saveUser(User user) {
userDao.save(user); // 调用 DAO 存储用户信息
}
}
```
---
#### 3. **DAO/Repository (Mapper) 层**
`DAO`(Data Access Object)或 `Mapper` 是用于访问数据库的操作层。这一层实现了对数据库的具体 CRUD 操作,通常是基于 ORM 工具(如 Hibernate、JPA 或 MyBatis)。在 Spring Boot 中,可以通过 `@Repository` 注解标注此类组件[^1]。
对于 MyBatis 用户来说,还可以直接编写 XML 映射文件或者使用注解形式定义 SQL 查询语句。
```java
@Repository
public interface UserDao extends JpaRepository<User, Long> {
Optional<User> findById(Long id);
List<User> findByName(String name);
}
```
---
#### 4. **Configuration 配置层**
`Configuration` 层的作用是对整个应用程序的行为进行全局设置。它可以用来加载属性文件、注册 Bean 定义以及初始化第三方库等功能[^1]。
例如,在 Shiro 认证框架集成过程中,需要配置安全策略:
```java
@Configuration
public class SecurityConfig {
@Bean
public Realm myRealm() {
return new MyCustomRealm(); // 自定义领域对象
}
}
```
---
#### 5. **Utils 工具类层**
虽然不属于标准分层的一部分,但工具类往往被广泛应用于各个模块间共享通用函数。比如日期转换器、字符串处理器等都可以集中放置在此处以便重复利用[^1]。
---
#### 总结:各层间的通信流程
- 当前端发起请求到达服务器端口后,首先进入的是 `Controller` 控制器;
- 接着由控制器委托给对应的 `Service` 方法去履行实际职责;
- 如果涉及到持久化存储,则继续向下流转至 `DAO/Mapper` 执行相应命令;
- 整个过程结束后沿原路逐级回传最终反馈消息直至呈现于界面上供使用者查看。
---
相关问题
阅读全文
相关推荐


















