プロジェクトと見つかりませんでしたピットXxxMapperの@Mapper共存に@MapperScanステップ。

背景:

同社は、ロギングプロジェクトの若い男が最適化されて突出しています。今日はポンポン依存追加、起動クラスにコメントを追加し、プロジェクトを開始し、突然ModuleMapperが見つかりましたと報告しました。
太字スタイル
プロジェクトが良い、とマッパーへの変更なしとなっています。ModuleMapperは、上記見つかっ入力も@Mapper注釈されているここに画像を挿入説明
。しかし、なぜ血管がそれを見つけることができない、ただ導入し、修正するか、それを分析し、注釈付き、問題は実行中のサービスを開始、コメントを追加するには、コメントの問題かもしれ依存しています。犯人はこのコメントです。
なぜ注釈がクラス@MapperScanスキャン注入構成を発見しました。私は、データベースを操作するために必要なこの男を見つけました。そして私は、伝統的な@Mapper注入を使用してプロジェクトを受信を担当してい。
ここに画像を挿入説明

質問:それはプロジェクト@MapperScanと@Mapperは共存できないというのは本当か?

解決するために試してみてください。

プログラムを起動する容器に@Mapperで始まる、springboot独自のプロジェクトを作成します。プログラムが正常に起動します。
ここに画像を挿入説明
ここに画像を挿入説明
停止したサービスは、スタートアップクラスに@MapperScanスイープパケット注射を追加し、マッパーのファイルにファイルを移動し、MAPPファイルに@Mapperを削除されます。通常のスタート。
ここに画像を挿入説明
ここに画像を挿入説明
今、パッケージなしでのテストにそれぞれ@MapperScanと@Mapperをテストします。UserMapperは今mapper2パッケージにマッパーパッケージ、UserTokenMapperを配置し、テストを開始@Mapper追加されます。

スタートクラス:
ここに画像を挿入説明
UserMapper:
ここに画像を挿入説明
UserTokenMapper:
ここに画像を挿入説明
スタートプロジェクトのエラー:説明:

com.wyz.yangyang.member.service.impl.MemberServiceImplのフィールドuserTokenMapperが見つかりませんでした型「com.wyz.yangyang.member.mapper2.UserTokenMapper」の豆を必要としていました。

アクション:

ご使用の構成にタイプ「com.wyz.yangyang.member.mapper2.UserTokenMapper」のBeanを定義することを検討してください。

「127.0.0.1:56527」、輸送:「ソケット」ターゲットVM、アドレスから切断

プロセス終了コード1で終了
ここに画像を挿入説明
し、その後、私がテストしているが、パッケージをスキャン@MapperScanマッパーファイルを保持することができ、mapper2マッパーファイルが@Mapperを追加され、適切にそのスタートを発見しました。
そして、もう一つのパッケージに同じ@MapperScanと@Mapperをテストし、正常に起動。

ここでは、異なるパッケージ、@マッパー注釈失敗に@MapperScanと@Mapperを見ることができます。
注釈は、複数のパッケージパスを設定することができますので、すぐにプロジェクトを開発するために、より良い未来の互換性のために、私は、@MapperScanモードにプロジェクトを変更します。

公開された18元の記事 ウォンの賞賛2 ビュー2566

おすすめ

転載: blog.csdn.net/wyz0923/article/details/103961234