一、@Context 注解的核心作用
- 传递额外参数 在映射方法中注入自定义上下文对象(如用户身份、全局配置、服务实例),用于动态调整映射逻辑。
- 避免污染源/目标对象 与源对象或目标对象无关的数据(如当前用户、系统配置)通过上下文传递,保持对象结构的纯粹性。
- 支持复杂业务逻辑 在
@BeforeMapping、@AfterMapping或自定义映射方法中访问上下文,实现条件映射、数据补全等需求。
二、@Context 的使用方法
1. 定义上下文对象
创建包含所需信息的上下文类:
public class MappingContext {
private String currentUser; // 当前用户
private String dateFormat; // 日期格式
private UserService userService; // 外部服务
// Getters/Setters
}
2. 在 Mapper 接口中声明上下文参数
在映射方法的参数中添加 @Context 注解:
@Mapper
public interface UserMapper {
UserDTO toUserDTO(UserEntity user, @Context MappingContext context);
}

最低0.47元/天 解锁文章
1792

被折叠的 条评论
为什么被折叠?



