day07 面向对象SpringBoot项目分层结构学习笔记
一、本日核心知识点:面向对象基础——项目分层包结构设计
- 项目目录结构手绘练习
完成随堂练习:手绘完整SpringBoot微头条项目分层目录结构,按照功能对Java类分包管理,实现面向对象模块化拆分,各司其职。
- 分层包结构详解(微头条SpringBoot项目)
1. config配置层:存放配置类- MyBatisPlusConfig:MyBatis-Plus框架配置
- MyMetaObjectHandler:公共字段自动填充配置,封装通用配置对象
2. controller控制层:接收前端请求,处理页面交互入口,转发业务调用- HelloController:测试接口,对外提供访问入口
3. entity实体层(核心面向对象体现)- User 用户类:封装用户属性(账号、密码、角色),对应数据库用户表 - News 新闻类:封装新闻标题、内容、发布时间等属性,对应新闻数据表
实体类是类的具象落地:用类来描述数据库实体,一个类对应一张表,实例对象对应表中一条数据。
4. mapper持久层:数据库操作接口,继承MyBatis-Plus基类,封装用户、新闻增删改查方法- UserMapper:操作用户表 - NewsMapper:操作新闻表
5. service业务层:处理业务逻辑,分为接口+接口实现类- NewsService:业务接口,定义新闻相关业务规范 - NewsServiceImpl:接口实现类,编写具体业务逻辑,调用mapper完成数据库交互
二、面向对象思想在分层结构中的体现
1. 类作为模板:User、News实体类是模板,定义一类事物共有属性;
2. 对象实例化:程序运行时new对象,承载单条用户/新闻数据;
3. 封装特性:不同包各司其职,配置、控制、实体、数据访问、业务逻辑相互隔离,代码高内聚低耦合;
4. 接口与实现分离:Service接口定义规范,Impl实现类做具体实现,符合面向对象设计思想。
三、MyBatis-Plus数据访问实操测试
1. 编写测试类 UserMapperTest ,添加SpringBoot单元测试注解;
2. 使用 @Autowired 自动注入Mapper对象;
3. 调用Mapper内置 selectList() 查询方法,测试查询所有用户数据;
4. 同理编写NewsMapper测试类,完成新闻数据查询、删除等功能测试;
5. 依托实体类对象接收数据库返回数据,完成数据表和Java对象映射,直观体现类与对象的使用场景。
四、当日学习总结
1. 深入理解面向对象中类与对象的工程落地:实体类映射数据库表,对象承载行数据;
2. 熟练掌握SpringBoot标准五层分包架构,理解每一层职责与调用流转关系;
3. 完成项目目录手绘练习,梳理完整项目结构,建立工程化代码思维;
4. 使用单元测试验证Mapper层数据库交互,打通实体对象与数据库数据映射;