Java+SpringBoot核心知识点整合一

一、HTTP请求方式

请求方式 用途 特点
GET 查询数据 参数拼接在URL后,安全性差
POST 新增数据 参数放在请求体中
PUT 全量修改 替换整个资源
PATCH 局部修改 修改部分字段
DELETE 删除数据

注:HEAD、OPTIONS、CONNECT、TRACE在实际开发中极少使用,了解即可。

二、@符号的语义区分

核心规则:

  • 顶格书写 = 注解:如@RestController@Service@Mapper@Select
  • 写在引号内 = 路径/变量:如@GetMapping("/user/{id}")中的/user/{id}

判断方法:看该符号是否出现在字符串字面量内部。

三、MyBatis核心知识点

@Mapper

  • 作用:标记Mapper接口,MyBatis自动生成实现类
  • 效果:开发者无需手写数据库操作的实现代码

@Select / @Insert / @Update / @Delete

  • 作用:在Mapper接口方法上直接编写SQL语句
  • 规则:
    • SQL由开发者手写,语法错误直接报错,框架不做修正
    • Mapper接口只包含方法声明和SQL注解,实现类由框架自动生成

MyBatis能力边界

  • 能做:纯CRUD数据库操作
  • 不能做:业务逻辑判断、密码加密、数据格式转换、多表复杂逻辑(应放在Service层处理)

四、SpringBoot自动创建对象注解

注解 作用 层级
@RestController 标记控制层类,处理前端请求 Controller
@Service 标记业务层实现类 ServiceImpl
@Repository 标记持久层类 持久层
@Component 标记通用工具类 任意层
@Mapper 标记MyBatis接口 持久层
@Bean 将第三方类手动注册到容器 配置类

五、分层架构(核心流程)

1
前端 → Controller → Service接口 → ServiceImpl实现类 → Mapper → 数据库

各层职责

Controller层:

  • 仅与前端交互
  • 只调用Service接口方法
  • 不包含业务逻辑

Service接口层:

  • 定义方法签名
  • 不编写具体实现
  • 起到规范作用

ServiceImpl实现类:

  • 实现接口中定义的所有方法
  • 编写全部业务逻辑
  • 调用Mapper接口操作数据库

Mapper持久层:

  • 执行SQL语句
  • 操作数据库表

六、面向接口编程的意义

为什么不直接Controller调用ServiceImpl?

  1. 解耦:Controller依赖于抽象接口而非具体实现
  2. 多态扩展:同一接口可存在多个实现类(如普通用户、VIP用户)
  3. 无侵入切换:切换业务逻辑时,Controller代码无需修改
  4. 可维护性:便于测试、后期维护和功能扩展

七、@Override注解的作用

  1. 标记重写:表明当前方法是对接口方法或父类方法的重写
  2. 编译校验:方法名、参数类型或数量写错时,IDE直接报错
  3. 代码规范:提高可读性,便于其他开发者识别重写方法

八、DTO数据传输对象

概念对比

  • Entity(实体类):与数据库表结构一一对应
  • DTO(数据传输对象):专用于前后端数据交互

必要性

  • 正式项目:必须使用DTO,用于隐藏敏感字段(如密码)、适配前端参数格式
  • 练手项目:可直接使用Entity,简化开发流程

核心作用

隔离前端与数据库,提高系统安全和代码规范性。

九、实现类通俗理解

  • 接口:定义规则,仅包含方法签名,不可直接运行
  • 实现类:遵循接口规则,编写实际业务代码

开发技巧:使用IDEA快捷键 Alt + Enter 可快速生成接口方法的实现骨架。

十、总结

  1. Mapper接口配合@Mapper注解:框架自动生成数据库操作代码
  2. Service接口定义规范,ServiceImpl编写业务逻辑
  3. Controller仅负责前端交互,不涉及业务和数据库
  4. 添加注解的类由Spring自动管理,通过@Autowired依赖注入使用
  5. SQL手工编写,业务逻辑手工实现,重复的数据库操作代码由框架代劳