qq_33204081
默默Silence
2020-07-24 17:53
采纳率: 100%
浏览 1.3k
已采纳

定义了一个MyMetaObjectHandler类,加了component注解,不明白这个类是如何被调用的

0、项目结构:
图片说明

1、写了个测试类,测试类里面调用userMapper(继承basemapper类)进行插入数据

    @Test
    public void testInsert() throws Exception{

        User user = new User();
        user.setAge(43);
        user.setEmail("72@qq.com");
        user.setName("ni");
//            userMapper.selectList(null);
        int res = userMapper.insert(user);
        System.out.println(res);
        System.out.println(user);

    }

userMapper:

@Repository
public interface UserMapper extends BaseMapper<User> {
}

2、MyMetaObjectHandler实现了MetaObjectHandler接口

@Component
public class MyMetaObjectHandler implements MetaObjectHandler {

    @Override
    public void insertFill(MetaObject metaObject){

        this.setFieldValByName("createTime",new Date(), metaObject);
        this.setFieldValByName("updateTime",new Date(), metaObject);

        System.out.println("我被执行了");
    }
    @Override
    public void updateFill(MetaObject metaObject) {


        this.setFieldValByName("updateTime",new Date(), metaObject);
    }
}

3、输出结果
图片说明

4、这是在什么时候执行了MyMetaObjectHandler类,如果我只是在测试类里面查询数据,不进行插入操作,就不会输出“我被执行了”

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • i__0o0__
    i__0o0__ 2020-07-27 15:48
    已采纳

    spring自动扫描加载的

    点赞 评论
  • qq_35818188
    时间淡忘一切 2020-12-01 11:35

    底层是通过反射生成,并不是使用spring容器中的

    点赞 评论

相关推荐