abel533 / Mapper

Mybatis Common Mapper - Easy to use
https://mybatis.io
MIT License
7.32k stars 1.63k forks source link

采用MapperScannerConfigurer 扫描mapper 没有注册到EntityHelper #911

Closed karsonto closed 6 months ago

karsonto commented 6 months ago

采用MapperScannerConfigurer 扫描mapper没有注册到EntityHelper

abel533 commented 6 months ago

scan中会调用doScan,目前写法的问题在哪里?

karsonto commented 6 months ago

目前写法走了父类的ClassPathBeanDefinitionScanner scan方法

karsonto commented 6 months ago

你看看MapperScannerRegistrar 的117行就知道问题所在了

abel533 commented 6 months ago

从调用效果看不出差异:

public int scan(String... basePackages) {
    int beanCountAtScanStart = this.registry.getBeanDefinitionCount();
    this.doScan(basePackages);
    if (this.includeAnnotationConfig) {
        AnnotationConfigUtils.registerAnnotationConfigProcessors(this.registry);
    }

    return this.registry.getBeanDefinitionCount() - beanCountAtScanStart;
}

这里会调用 this.doScan(basePackages),会调用重写的 doScan

调用 scan 和 doScan 的差异就是上面几行代码,差的这几行不影响结果。

karsonto commented 6 months ago

嗯,是的,我看错了

abel533 commented 6 months ago

可以考虑先写单元测试复现,然后解决。