Maison >Java >javaDidacticiel >Comment résoudre le problème du mappeur vide automatiquement injecté dans le projet Idea SpringBoot
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 #🎜 🎜#
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!