Java后端核心注解大辞典
目录
分成三层来记,控制层(Controller)→ 业务层(Service)→ 数据库层(Mapper),这样思路最清晰。
第一层:控制层(Controller)—— 负责接请求、给响应
|
注解 |
作用 |
位置 |
生动解释 |
|
|
标记这是一个控制器,且所有方法都返回JSON |
类上面 |
跟浏览器说:我这是接待处,而且只说JSON语言 |
|
|
设置访问路径的“根目录” |
类上面 |
给整个接待处挂个门牌号,比如 |
|
|
只能处理 GET 请求(查) |
方法上面 |
专门接待“想看看”的客人 |
|
|
只能处理 POST 请求(增) |
方法上面 |
专门接待“想交资料”的客人 |
|
|
只能处理 PUT 请求(改) |
方法上面 |
专门接待“想改资料”的客人 |
|
|
只能处理 DELETE 请求(删) |
方法上面 |
专门接待“想删资料”的客人 |
|
|
接收路径里的参数,比如
|
方法参数上 |
从门牌号里把数字摘出来 |
|
|
接收?号后面的参数,比如
|
方法参数上 |
从问号后面把值摘出来 |
|
|
接收前端传来的JSON对象 |
方法参数上 |
把客人递过来的一整张表拆开 |
第二层:业务层(Service)—— 负责写逻辑、调数据库
|
注解 |
作用 |
位置 |
|
|
标记这是一个业务处理类 |
类上面 |
|
|
自动把别的组件“拿过来”用 |
字段/构造方法上 |
|
|
开启数据库事务(要么全成功,要么全撤销),避免脏数据 |
方法/类上面 |
第三层:数据库层(Mapper)—— 负责直接跟表打交道
|
注解 |
作用 |
位置 |
|
|
标记这是一个数据库操作接口 |
接口上面 |
|
|
指定这个实体类对应哪张表 |
实体类上面 |
|
|
标记哪个字段是主键 |
实体类字段上 |
|
|
标记字段对应表的哪一列 |
实体类字段上 |
第四层:启动与配置类(Spring Boot 核心)
|
注解 |
作用 |
位置 |
|
|
启动类专用,包含了三大注解 |
启动类上 |
|
|
标记当前类是Spring 配置类,项目启动时 Spring 会自动扫描这个类,执行里面@Bean修饰的方法,把对象放到容器里供你注入使用。 |
类上面 |
|
|
把方法返回的对象交给Spring管理, |
配置类里的方法上 |
第五层:Lombok
|
注解 |
作用 |
位置 |
例子 |
|
|
最常用! 一键生成getter/setter/toString等 |
实体类上 |
|
|
|
生成全参数的构造方法 |
实体类上 |
|
|
|
生成无参数的构造方法 |
实体类上 |
|
|
|
支持链式调用 |
实体类上 |
User user = User.builder() .id(1L) .username("张三") .password("123") .age(20) .build(); |
📝 三层对照
|
层级 |
类上面贴 |
方法上面贴 |
参数上面贴 |
|
控制层 |
|
|
/ / |
|
业务层 |
|
|
|
|
数据库层 |
|
(MyBatis-Plus自动生成) |
(MyBatis-Plus自动生成) |
🧓 实操例子
// ---------- 实体类 (Lombok + MyBatis-Plus) ----------
@Data
@TableName("user")
public class User {
@TableId(type = IdType.AUTO)
private Long id;
private String username;
private String password;
}
// ---------- Mapper (数据库层) ----------
@Mapper
public interface UserMapper extends BaseMapper<User> {
// 空着就行,MP自动提供增删改查
}
// ---------- Service (业务层) ----------
@Service
public class UserService {
@Autowired
private UserMapper userMapper; // 把Mapper拿过来用
public User getById(Long id) {
return userMapper.selectById(id);
}
}
// ---------- Controller (控制层) ----------
@RestController
@RequestMapping("/api/users")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/{id}")
public User getById(@PathVariable Long id) {
return userService.getById(id);
}
}
昨天的文章收获了一些点赞,作为初次尝试写博客的大学生来说真的好开心啊,感谢所有道友的鼓励!我将会持续更新我的学习与总结的❤
更多推荐



所有评论(0)