SpringBoot プロジェクトで、MyBatis が永続層フレームワークとして使用されている場合、自動インジェクションの使用時にマッパーが null ポインター例外を報告するという問題が発生する可能性があります。これは、自動挿入中に SpringBoot が MyBatis の Mapper インターフェイスを正しく識別できず、追加の構成が必要になるためです。
この問題を解決するには 2 つの方法があります:
1. Mapper インターフェイスにアノテーションを追加します
@Mapper アノテーションを Mapper インターフェイスに追加して、このインターフェイスが Mapper インターフェイスであり、必要な機能があることを SpringBoot に伝えます。プロキシされる 。例は次のとおりです:
@Mapper public interface UserMapper { // ... }
2. マッパー スキャン パスを手動で構成します
application.properties または application.yml でマッパー スキャン パスを手動で構成し、どのパッケージの下にあるマッパー インターフェイスをスキャンするかを SpringBoot に指示します。例は次のとおりです。
Configure in application.properties:
mybatis.mapper-locations=classpath:mapper/*.xml
Configure in application.yml:
mybatis: mapper-locations: classpath:mapper/*.xml
ここでの mapper/*.xml はマッパーを参照していることに注意してください。インターフェース 対応する XML ファイルが保存されているパス 注釈を使用して SQL ステートメントを構成する場合、XML ファイルのパスを構成する必要はありません。
上記の 2 つの方法で設定を行うと、自動挿入を使用するときに Mapper インターフェイスを正しく挿入できるようになります。
最後に 、上記のすべてを実行しても空の結果が得られる場合は、誤ってコントローラー層にマッパーを挿入しなかったかどうかを確認してください (例:
)
新しいオブジェクトの場合、参照される注入オブジェクトはスプリング コンテナーに自動的に注入されるオブジェクトではないため、空として報告されます。一連のパフォーマンスを実行する必要があります。コントローラー層にも @Autowird インジェクション。
以上がアイデア springBoot プロジェクトに空のマッパーが自動的に挿入される問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。