package com.video.handler; import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; import lombok.extern.slf4j.Slf4j; import org.apache.ibatis.reflection.MetaObject; import org.springframework.stereotype.Component; import org.springframework.web.context.request.RequestAttributes; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import javax.servlet.http.HttpServletRequest; import java.util.Date; @Slf4j @Component // 一定不要忘记把处理器加到IOC容器中! public class MyMetaObjectHandler implements MetaObjectHandler { // 插入时的填充策略 @Override public void insertFill(MetaObject metaObject) { HttpServletRequest request = getHttpServletRequest(); Long user_id = 1L;//request.getHeader("user_id") == null ? "测试" : request.getHeader("user_id"); log.info("start insert fill....."); // setFieldValByName(String fieldName, Object fieldVal, MetaObject metaObject this.setFieldValByName("createTime",new Date(),metaObject); this.setFieldValByName("updateTime",new Date(),metaObject); this.setFieldValByName("createUser",user_id,metaObject); this.setFieldValByName("updateUser",user_id,metaObject); } // 更新时的填充策略 @Override public void updateFill(MetaObject metaObject) { HttpServletRequest request = getHttpServletRequest(); Long user_id = 1L; log.info("start update fill....."); this.setFieldValByName("updateTime",new Date(),metaObject); this.setFieldValByName("updateUser",user_id,metaObject); } private HttpServletRequest getHttpServletRequest() { RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes(); ServletRequestAttributes attributes = (ServletRequestAttributes) requestAttributes; return attributes.getRequest(); } }