背景:
同社は、ロギングプロジェクトの若い男が最適化されて突出しています。今日はポンポン依存追加、起動クラスにコメントを追加し、プロジェクトを開始し、突然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モードにプロジェクトを変更します。