問題タブ [component-scan]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
11037 参照

spring - ComponentScan と Autowired が依存する Spring プロジェクトで機能しませんか?

私は 2 つのプロジェクト A と B を持っています。どちらも Maven で構築されており、プロジェクト A はプロジェクト B に Maven 依存関係があります。両方のプロジェクトには、@Beans を定義する @Configuration アノテーションを持つクラスがあります。

両方のプロジェクトから、プロジェクト A に Bean があります。同じプロジェクトで定義されている Bean のプロジェクト A で @Autowired アノテーションを使用すると、自動配線が機能します。ただし、プロジェクト B の Bean のプロジェクト A で @Autowired アノテーションを使用すると、例外が発生します。

これは何を意味するのでしょうか?プロジェクト B で定義されているプロジェクト A の Bean を自動配線するにはどうすればよいですか?

0 投票する
0 に答える
364 参照

java - プロパティを使用した Spring コンポーネント スキャンが複数の基本パッケージで機能しない

プロパティ ファイルからスキャンするパッケージ名を保持する変数を読み取りたい:

これはどちらでも機能しません

とも

プロパティから複数の基本パッケージを読み取る方法はありますか?

0 投票する
1 に答える
3159 参照

java - Spring @ComponentScan アノテーションが機能しない

パッケージ レイアウトのスプリング ブート アプリケーションのサンプルがあります。

統合テストの実行に失敗し、置かれた場合に ItemRepository Bean を見つけることができません

しかし、私が置くと動作します

トリックはどこですか?

仕様は言う:

basePackageClasses() または basePackages() (またはその別名 value()) を指定して、スキャンする特定のパッケージを定義できます。特定のパッケージが定義されていない場合、このアノテーションを宣言するクラスのパッケージからスキャンが行われます。

0 投票する
1 に答える
391 参照

spring - Spring Web アプリの起動 - @ComponentScan - アプリ コンテキストと Web コンテキスト

Spring MVC Web アプリは、推奨されるスタイルに従おうとしています。AppContext ( ContextLoaderListener) を使用して、DAO とサービスを格納します。WebAppContext( DispatcherServlet) を使用して Controller を格納します。

DAO オブジェクトは、AppContext と WebAppContext の両方に入ります。理由がわかりません。

AppContext 構成は、コントローラー (およびコード テーブルを ServletContext にロードするクラス) を除くすべてをロードすることになっています。

Web パーツはコントローラーのみをロードすることになっています。

(上記のクラスは、「何とか」の兄弟である別のパッケージに含まれています。セルフスキャンは行われていません)。

もちろん、コントローラは DAO オブジェクトを参照します。コントローラーでは、これらの DAO オブジェクトは@Autowired.

私の期待は、これらの@AutowiredDAO オブジェクトが AppContext から取得され、2 度目に作成されず、WebAppContext に配置されることでした。しかし、それらは二度目に作成されていると思います。たとえば、次の行はログに 2 回表示されます。AppContext に対して 1 回、WebAppContext に対して 1 回です。

何か不足していますか?

ルート コンテキストと Web コンテキストの親子関係が失われているようです。

0 投票する
1 に答える
287 参照

java - component-scan で @Repository が見つからない

私のクラスは次のようになります:

DAOImpl

application-context-test.xml

テストクラス

このコードは、私の itemDAO をオートワイヤーできませんか?

テストを実行すると、次のような例外がスローされます

何が欠けているのか教えてください。私が考えることができる唯一のことは、私のテストは src/test/java にあるので、私の application-context-test.xml は src/test/resources にあり、私の dao は src/main/java にあるということです。コンポーネントスキャンのスキャンが間違った場所にあるのではないでしょうか?

0 投票する
2 に答える
11560 参照

java - Spring Boot コンポーネント スキャンには単一のクラスが含まれます

私はSpringコンポーネントスキャンを使用してBeanを自動検出しています:

問題は、すべてのクラスをcom.org.xスキャンしたいが、単一のクラスcom.org.y.SomeService.classのみをスキャンしたいことです。com.org.y

どうすればこれを達成できますか?

また、コンテキストスキャンを使用する以外に、この Bean を作成してアプリケーションコンテキストに注入するにはどうすればよいですか?

0 投票する
1 に答える
21789 参照

spring - コンポーネントスキャンがサブパッケージをスキャンしない

奇妙な問題に遭遇しました。最上位のパッケージがスキャン対象として指定されている場合、コンポーネント スキャンはサブ パッケージを再帰的にスキャンするという印象を受けます。

私のリポジトリとエンティティは、プロジェクトの Maven 依存関係です。それらはパッケージ名 com.foo.bar.xyz の下にあり、私のアプリケーション構成はパッケージ com.foo.bar の下にあります。と書く@ComponentScan(basePackages = "com.foo.bar")と、@EnableJpaRepositoriesリポジトリビーンが見つからないというエラーが表示されます。

@EnableJpaRepositories(basePackages = com.foo.bar.xyz)ただし、上記のコンポーネントスキャンとともに、のようなトップレベルのリポジトリパッケージを指定すると、リポジトリが正常に検出されます。

これは、リポジトリとエンティティが Maven の依存関係として注入されているためだけに発生していますか? コンポーネントスキャンの再帰部分は、サブパッケージまたはサブディレクトリをスキャンしますか?

0 投票する
1 に答える
1987 参照

spring-boot - @SpringBootApplication をコンポーネント スキャンから除外する

@SpringBootApplication1つのディレクトリの下に 2 つのクラスがあります。

@SpringBootApplication注釈には@ComponentScan注釈と注釈が含まれます@EnableAutoConfiguration@Configurationしたがって、これらのクラスの 2 つのそれぞれは、別のクラスをBeanと見なします。プロファイルを使用せずにFirstSpringBoodApplicationコンポーネントのスキャンから除外する方法は?SecondSpringBootApplication