springboot 四层架构之间的关系整理笔记二

Spring Boot 的四层架构就像班级里的 ‌4 个小组‌,分工合作完成一个大任务!(比如组织一场运动会)


‌**1. 控制层(Controller)------ 像「传达室门卫」**‌
  • ‌做什么‌:专门和"外面的人"说话,比如同学要报名运动会,门卫负责收报名表,然后把结果告诉同学。

  • ‌例子 ‌:

    @RestController public class SportsController {

  • @Autowired

  • private SportsService sportsService; // 找班长帮忙 // 处理同学的报名请求

  • @PostMapping("/signup")

  • public String signUp(String name) {

  • return sportsService.addStudent(name); // 让班长处理 } }


‌**2. Service 层(接口)------ 像「班长写的计划书」**‌
  • ‌做什么‌:班长先写一个计划,比如"报名流程分三步",但具体怎么做交给其他同学。

  • ‌例子 ‌:

    复制代码

    public interface SportsService

  • { String addStudent(String name); // 班长说:"报名要有这个方法!" }


‌**3. ServiceImpl 层(实现类)------ 像「劳动委员按计划干活」**‌
  • ‌做什么‌:劳动委员按照班长的计划书,实际去操作(比如检查名字、记到本子上)。

  • ‌例子 ‌:

    @Service

  • public class SportsServiceImpl implements SportsService {

  • @Autowired

  • private StudentDao studentDao; // 找图书管理员帮忙

  • @Override public String addStudent(String name) {

  • if (name != null) { studentDao.save(name); // 让图书管理员存名字 return "报名成功!";

  • } return "名字不能为空!"; } }


‌**4. DAO/Repository 层 ------ 像「图书管理员」**‌
  • ‌做什么‌:只负责管班级的"小仓库"(比如记名字的本子、装奖品的柜子)。

  • ‌例子 ‌:

    复制代码

    @Repository public class StudentDao { // 假装这里连接了数据库,实际是把名字存到本子上 public void save(String name) { System.out.println("把 " + name + " 记到报名本!"); } }


为什么要分四层?就像班级分工一样!

  1. ‌各司其职‌:

    • 门卫不用管怎么记名字,班长不用去开柜子,大家只做自己擅长的事。
  2. ‌方便修改‌:

    • 如果换一个"图书管理员"(比如从本子换成电脑记录),只要改 DAO 层,其他小组不用动。
  3. ‌容易测试‌:

    • 可以单独检查"劳动委员"的代码对不对,不用管门卫和图书管理员。
  4. ‌避免混乱‌:

    • 如果所有代码都写在一起,就像全班挤在门口收报名表,会乱成一团!

实际项目中的四层结构:

复制代码

textCopy Code

src/ ├── controller/ (门卫小组)

├── service/ (班长计划书)

├── service/impl/ (劳动委员干活)

└── dao/ (图书管理员)

相关推荐
Code_Solitude17 分钟前
高数第一章函数笔记(原稿手写+AI识别优化)
人工智能·笔记
真上帝的左手25 分钟前
27. 数据产品-数据中台架构规划
数据仓库·架构·数据分析·数据中台
杭州领祺科技33 分钟前
零碳园区绿电直连并网验收:688 号文 + 27 号令双合规下 7 产品 4 区架构工程正解
架构·储能·电力
hhb_6181 小时前
AIAgent高可用架构与自愈实战
架构
Thneonl1 小时前
让 LLM 值第一班岗:只读的活放手交,变更的活一条别给
后端·架构
imDwAaY1 小时前
MCP 到底是什么?大模型如何连接外部工具与数据?
笔记
深圳老胡1 小时前
STM32F4 OTA 升级双 App 方案设计与实现
笔记·stm32·单片机·代码规范
阿标在干嘛2 小时前
缓存架构的“场景适配“:我们为什么在部分服务中采用了本地缓存?
缓存·架构
程序人生8882 小时前
从“把隐私文件上传到别人云端“到本地可控:DocConverter Web 立项初心与架构选型
前端·图像处理·人工智能·opencv·架构·ocr·文心一言
陈年老古董2 小时前
Hive 分区表学习笔记:语法、操作、二级分区与动态分区
hive·笔记·学习