Heim  >  Artikel  >  Java  >  So lösen Sie das Problem, dass TypeAlias ​​​​Mybatis basierend auf SpringBoot lädt

So lösen Sie das Problem, dass TypeAlias ​​​​Mybatis basierend auf SpringBoot lädt

WBOY
WBOYnach vorne
2023-05-25 16:01:061007Durchsuche

SpringBoot lädt TypeAlias ​​​​von Mybatis

Nachdem Springboot in ein JAR kompiliert und dann unter Linux ausgeführt wurde, wird gemeldet, dass die dem Typalias entsprechende Entitätsklasse nicht gefunden werden kann. Dies ist ein Problem beim Scannen von Springboot-Paketen.

Mybatis' DefaultVFS wird standardmäßig zum Scannen im Projekt verwendet. In der Springboot-Umgebung verursacht Mybatis' DefaultVFS jedoch Probleme beim Scannen von Paketen, daher kann das VFS nur geändert werden, um es klarer zu machen

direkt einfügen Der Code:

@Bean
    public SqlSessionFactory sqlSessionFactoryBean() throws Exception {
        logger.info("load SpringBootVFS");
        //DefaultVFS在获取jar上存在问题,使用springboot只能修改
        VFS.addImplClass(SpringBootVFS.class);
        SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
        sqlSessionFactoryBean.setDataSource(dataSource());
        PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
        Resource[] resources1 = resolver.getResources("classpath*:/mybatis/*.xml");
        Resource[] resources2 = resolver.getResources("classpath*:/mysql/mapper/*.xml");
        Resource[] resources = (Resource[]) ArrayUtils.addAll(resources1,resources2);
        sqlSessionFactoryBean.setMapperLocations(resources);
        sqlSessionFactoryBean.setTypeAliasesPackage("com.xxx.xx.entity");
        return sqlSessionFactoryBean.getObject();
    }

springboot Beim Starten des Pakets tritt ein Fehler auf, der besagt, dass der typeAlias-Klassenname von mybatis nicht gefunden werden kann.

Das SpringBoot-Projekt wird normal auf IDEA ausgeführt, aber nach dem Ausführen nach dem Packen tritt ein Fehler auf. Der Fehler ist ungefähr Dieser TypAlias ​​​​kann die XX-Klasse nicht finden, wenn Mybatis Mapper.xml analysiert

Das Tag in Mapper:

<select parameterType="XXClass" resultMap="XXMap">

Diese Schreibweise läuft problemlos in IDEA, aber es gibt ein Problem mit der Verpackung

Richtige Schreibweise:

<select parameterType="cn.test.xxx.XXClass" resultMap="XXMap">

Der ParameterType im Code muss den vollständigen Pfad verwenden, sonst tritt ein Fehler auf.

Das obige ist der detaillierte Inhalt vonSo lösen Sie das Problem, dass TypeAlias ​​​​Mybatis basierend auf SpringBoot lädt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen