Maison > Java > javaDidacticiel > le corps du texte

Comment résoudre le problème du chargement de Mybatis par TypeAlias ​​​​basé sur SpringBoot

WBOY
Libérer: 2023-05-25 16:01:06
avant
1012 Les gens l'ont consulté

SpringBoot charge TypeAlias ​​​​de Mybatis

Une fois Springboot compilé dans un fichier jar puis exécuté sous Linux, il signalera que la classe d'entité correspondant à l'alias de type est introuvable. Il s'agit d'un problème d'analyse du package Springboot.

DefaultVFS de Mybatis est utilisé par défaut pour l'analyse dans le projet. Cependant, dans l'environnement Springboot, DefaultVFS de Mybatis posera des problèmes lors de l'analyse des packages, le VFS ne peut donc être modifié que pour le rendre clair

coller directement. le 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();
    }
Copier après la connexion

springboot Lors du démarrage du package, il y a une erreur indiquant que le nom de classe typeAlias ​​​​de mybatis est introuvable

Le projet springBoot s'exécute normalement sur IDEA mais une erreur se produit après l'exécution après l'empaquetage. ce typeAlias ​​​​ne trouve pas la classe XX lorsque mybatis analyse Mapper.xml

La balise dans Mapper :

<select parameterType="XXClass" resultMap="XXMap">
Copier après la connexion

Cette façon d'écrire n'a aucun problème à fonctionner dans IDEA, mais il y a un problème avec l'empaquetage

Façon correcte d'écrire :

<select parameterType="cn.test.xxx.XXClass" resultMap="XXMap">
Copier après la connexion

Le paramètreType dans le code doit utiliser le chemin complet, sinon une erreur se produira.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal