クラスパス上にモジュールを追加/削除できるようにするプロジェクト構造を作成しようとしています。 Springアプリケーションで@ComponentScan("com.companyname")
注釈を使用すると、モジュールから注釈付きコンポーネントを検出して作成します。どこでも私のCrudRepositoryをautowireしようとしたとき、私はエラーを取得:ComponentScanを使用しているときにSpringがCrudRepository beansを見つけられない
Field repo in com.companyname.somemodule.services.SomeService required a bean of type 'com.companyname.somemodule.repos.SomeRepo' that could not be found.
だから私は、彼らがモジュールの1つに定義されている場合多分それは何とかリポジトリを作成することができないと思ったので、私は先にwen'tとテストレポを追加しました私のベースSpringApplicationにし、私の驚きに私が得た:
Field repo in com.companyname.modularapp.TestService required a bean of type 'com.companyname.modularapp.TestRepo' that could not be found.
は、その後、私はちょうど私の@ComponentScan
注釈を削除し、私が意図したとおりに突然TestRepoが働いて、私は通常、テストエンティティを永続化して読むことができました。 ComponentScanはどうやらCrudRepositoryの作成を失敗させるか、それとも後で検出するかのいずれかです。
私はこのように私のレポを定義します。
@Entity
public class Test {
@Id
private long id;
}
public interface TestRepo extends CrudRepository<Test, Long>{}
私はこのプロジェクトで春ブーツ2.0.0.M7をしようとしているが、私はそれが原因だ疑い。 私は何かを見逃しましたか?
これはちょうど私が行方不明だった!私は前にそれを試しましたが、パッケージ名を渡すことはできません。本当にありがとう!実際にエンティティがアンマネージドであるというエラーが出ましたが、 '@EntityScan(" com.companyname ")' –