2

spring-data-mongoリポジトリ パッケージが<mongo:repositories/>タグによってスキャンされていない場所で、少し奇妙な動作が発生しています。spring-data-mongo 1.2.1.RELEASE で spring 3.2.3.RELEASE を使用しています。

と呼ばれるプロジェクトがedowmisあり、その中に2 maven modulesdatalayerおよびwebwebapp.Idatalayerを分離して使用しているため、他のモジュールは無視できます。データレイヤーのアプリケーションコンテキストがあります データレイヤー構成

だから私は小さなユニット/統合テストを書いて自分のセットアップをテストしたかったのですが、UserRepositoryそのようなビーンがないと言われているので 、自動配線できないことに気付きました単体テスト

私は IntelliJ を使用しているので、問題がない場合と問題がある場合に特定のビジュアルを見ることができます。<context:component-scan/>アプリケーションコンテキストに追加しましたが、結果がありません 。UserRepository がスキャンされていません

しかし、@Component注釈を追加すると、クラスの識別が開始されました。 スキャン中のコンポーネント

必要な情報はすべてpastie.orgにあります

@componentまたは本当に必要ですか、@Repositoryそれとも構成に何か問題がありますか?

4

1 に答える 1

0

はい、 @Component または @Repository が必要です。スキャンは単に、Spring がアノテーション (@Component、@Repository、@Service) で識別されたクラスを探し、それらを Bean としてロードする必要があることを示しています。リポジトリまたはコンポーネント スキャンを使用しない場合は、XML 構成または Java 構成を介して、Spring で管理されるすべての Bean を手動でインスタンス化する必要があります。

クラスパス内のすべてがSpring管理のBeanであると想定されているわけではないため、どのクラスをBeanに変換するかをSpringに伝える必要があります。そのため、注釈を使用する必要があります。

于 2014-09-30T17:08:52.307 に答える