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

WBOY
リリース: 2023-05-17 18:49:18
転載
1823 人が閲覧しました

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 までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート