Maison >Java >javaDidacticiel >Comment résoudre le problème du mappeur vide automatiquement injecté dans le projet Idea SpringBoot

Comment résoudre le problème du mappeur vide automatiquement injecté dans le projet Idea SpringBoot

WBOY
WBOYavant
2023-05-17 18:49:181833parcourir

Dans le projet SpringBoot, si MyBatis est utilisé comme framework de couche de persistance, vous pouvez rencontrer le problème du mappeur signalant une exception de pointeur nul lors de l'utilisation de l'injection automatique. En effet, SpringBoot ne peut pas identifier correctement l'interface Mapper de MyBatis lors de l'injection automatique et nécessite une configuration supplémentaire.
Il existe deux façons de résoudre ce problème :

1 Ajouter une annotation à l'interface Mapper
Ajouter l'annotation @Mapper à l'interface Mapper pour indiquer à SpringBoot que cette interface est une interface Mapper, doit être proxy. Un exemple est le suivant :

@Mapper
public interface UserMapper {
    // ...
}

2. Configurez manuellement le chemin d'analyse du Mapper
Configurez manuellement le chemin d'analyse du Mapper dans application.properties ou application.yml pour indiquer à SpringBoot d'analyser les interfaces du Mapper sous quels paquets. Un exemple est le suivant :
Configuré dans application.properties :

mybatis.mapper-locations=classpath:mapper/*.xml

Configuré dans application.yml :

mybatis:
  mapper-locations: classpath:mapper/*.xml

Il est à noter que le mapper/*. xml fait référence au chemin où est stocké le fichier XML correspondant à l'interface Mapper. Si vous utilisez des annotations pour configurer les instructions SQL, vous n'avez pas besoin de configurer le chemin du fichier XML.
Après avoir configuré les deux manières ci-dessus, vous pouvez injecter correctement l'interface Mapper lors de l'utilisation de l'injection automatique.

Enfin , si vous avez fait tout ce qui précède et que vous obtenez toujours un résultat vide, vérifiez si vous n'avez pas accidentellement injecté le mappeur dans la couche contrôleur, par exemple #🎜 🎜#

Comment résoudre le problème du mappeur vide automatiquement injecté dans le projet Idea SpringBoot

S'il s'agit d'un nouvel objet, l'objet d'injection référencé n'est pas un objet qui est automatiquement injecté dans le conteneur Spring, il sera donc signalé comme vide . Vous devez effectuer un ensemble complet de performances et utiliser @Autowird dans la couche contrôleur. Injectez-le

.

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer