ホームページ  >  記事  >  Java  >  アイデア springBoot プロジェクトに空のマッパーが自動的に挿入される問題を解決する方法

アイデア springBoot プロジェクトに空のマッパーが自動的に挿入される問題を解決する方法

WBOY
WBOY転載
2023-05-17 18:49:181826ブラウズ

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 インターフェイスを正しく挿入できるようになります。

最後に 、上記のすべてを実行しても空の結果が得られる場合は、誤ってコントローラー層にマッパーを挿入しなかったかどうかを確認してください (例:

) アイデア springBoot プロジェクトに空のマッパーが自動的に挿入される問題を解決する方法

新しいオブジェクトの場合、参照される注入オブジェクトはスプリング コンテナーに自動的に注入されるオブジェクトではないため、空として報告されます。一連のパフォーマンスを実行する必要があります。コントローラー層にも @Autowird インジェクション。

以上がアイデア springBoot プロジェクトに空のマッパーが自動的に挿入される問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。