当前使用版本(必须填写清楚,否则不予处理)

3.3.1

该问题是怎么引起的?(最新版上已修复的会直接close掉)

com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean

scanClasses(this.typeHandlersPackage, TypeHandler.class).stream().filter(clazz -> !clazz.isAnonymousClass())
                .filter(clazz -> !clazz.isInterface()).filter(clazz -> !Modifier.isAbstract(clazz.getModifiers()))
               .filter(clazz -> ClassUtils.getConstructorIfAvailable(clazz) != null)
                .forEach(targetConfiguration.getTypeHandlerRegistry()::register);

第537行: .filter(clazz -> ClassUtils.getConstructorIfAvailable(clazz) != null) 如下自定义泛型类型处理器将无法加载,临时解决方案是加一个无参构造函数。

//GenericTypeHandler.java
public class GenericTypeHandler<E extends MyObject> extends BaseTypeHandler<E> {

  private Class<E> type;

  public GenericTypeHandler(Class<E> type) {
    if (type == null) throw new IllegalArgumentException("Type argument cannot be null");
    this.type = type;
  }
  ...

重现步骤

com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean

报错信息

Comment From: nieqiurong

https://github.com/baomidou/mybatis-plus/commit/d76477744c77ebb7d58b743e15987060e777f8e3

Comment From: nieqiurong

用3.3.2.1-SNAPSHOT试试,使用方式参考https://mp.baomidou.com/guide/install.html#snapshot