[toc]
| 单词 | 词性 | 音标 | 含义 |
|---|---|---|---|
| Controller | n. | /kənˈtrəʊlə(r)/ | 控制器(Spring MVC中的核心组件,负责处理用户请求、调用服务层逻辑并返回响应,通常用@Controller或@RestController注解标识,是前端与后端的交互入口) |
| Service | n. | /ˈsɜːvɪs/ | 服务(业务逻辑层组件,封装核心业务逻辑,供控制器调用,通常用@Service注解标识,实现代码复用和解耦,事务管理也常在此层配置) |
| Repository | n. | /rɪˈpɒzətri/ | 仓库(数据访问层组件,负责与数据库交互(如CRUD操作),通常用@Repository注解标识,可简化数据访问代码,Spring Data JPA中常用接口继承方式实现) |
Lecture05-容器-[实验03]MVC分层注解的使用

一、MVC三层架构
- 表述层:和浏览器交互
- 视图层:显示界面并渲染数据,使用技术:HTML、CSS、JavaScript、JSP……
- 控制层:处理请求、返回响应、跳转页面,使用技术:Servlet、Filter……
- 业务逻辑层:处理业务逻辑
- 持久化层:和数据库交互
二、对应注解
- 控制层的控制器:@Controller
- 业务逻辑层:@Service
- 持久化层:@Repository
上述三个注解其实都只是@Component注解的别名:

从语法功能上来说,@Component、@Controller、@Service、@Repository注解没有区别
但是,为了程序可读性,还是要准确标记
三、测试
1、创建各层组件

2、在各层标记注解
①控制层
@Controller
public class EmpController {
}
②业务逻辑层
@Service
public class EmpServiceImpl implements EmpService {
}
③持久化层
@Repository
public class EmpDaoImpl implements EmpDao {
}
3、测试
看看标记注解之后,组件是否加入到了IoC容器:

确认加入IoC容器之后,就一定可以调用getBean()方法来获取,这里不在赘述
四、bean的名称
和@Component注解规则一致