問題タブ [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.
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 を自動配線するにはどうすればよいですか?
java - プロパティを使用した Spring コンポーネント スキャンが複数の基本パッケージで機能しない
プロパティ ファイルからスキャンするパッケージ名を保持する変数を読み取りたい:
これはどちらでも機能しません
とも
プロパティから複数の基本パッケージを読み取る方法はありますか?
java - Spring @ComponentScan アノテーションが機能しない
パッケージ レイアウトのスプリング ブート アプリケーションのサンプルがあります。
統合テストの実行に失敗し、置かれた場合に ItemRepository Bean を見つけることができません
しかし、私が置くと動作します
トリックはどこですか?
仕様は言う:
basePackageClasses() または basePackages() (またはその別名 value()) を指定して、スキャンする特定のパッケージを定義できます。特定のパッケージが定義されていない場合、このアノテーションを宣言するクラスのパッケージからスキャンが行われます。
spring - Spring Web アプリの起動 - @ComponentScan - アプリ コンテキストと Web コンテキスト
Spring MVC Web アプリは、推奨されるスタイルに従おうとしています。AppContext ( ContextLoaderListener
) を使用して、DAO とサービスを格納します。WebAppContext( DispatcherServlet
) を使用して Controller を格納します。
DAO オブジェクトは、AppContext と WebAppContext の両方に入ります。理由がわかりません。
AppContext 構成は、コントローラー (およびコード テーブルを ServletContext にロードするクラス) を除くすべてをロードすることになっています。
Web パーツはコントローラーのみをロードすることになっています。
(上記のクラスは、「何とか」の兄弟である別のパッケージに含まれています。セルフスキャンは行われていません)。
もちろん、コントローラは DAO オブジェクトを参照します。コントローラーでは、これらの DAO オブジェクトは@Autowired
.
私の期待は、これらの@Autowired
DAO オブジェクトが AppContext から取得され、2 度目に作成されず、WebAppContext に配置されることでした。しかし、それらは二度目に作成されていると思います。たとえば、次の行はログに 2 回表示されます。AppContext に対して 1 回、WebAppContext に対して 1 回です。
何か不足していますか?
ルート コンテキストと Web コンテキストの親子関係が失われているようです。
java - component-scan で @Repository が見つからない
私のクラスは次のようになります:
DAOImpl
application-context-test.xml
テストクラス
このコードは、私の itemDAO をオートワイヤーできませんか?
テストを実行すると、次のような例外がスローされます
何が欠けているのか教えてください。私が考えることができる唯一のことは、私のテストは src/test/java にあるので、私の application-context-test.xml は src/test/resources にあり、私の dao は src/main/java にあるということです。コンポーネントスキャンのスキャンが間違った場所にあるのではないでしょうか?
java - Spring Boot コンポーネント スキャンには単一のクラスが含まれます
私はSpringコンポーネントスキャンを使用してBeanを自動検出しています:
問題は、すべてのクラスをcom.org.x
スキャンしたいが、単一のクラスcom.org.y.SomeService.class
のみをスキャンしたいことです。com.org.y
どうすればこれを達成できますか?
また、コンテキストスキャンを使用する以外に、この Bean を作成してアプリケーションコンテキストに注入するにはどうすればよいですか?
spring - コンポーネントスキャンがサブパッケージをスキャンしない
奇妙な問題に遭遇しました。最上位のパッケージがスキャン対象として指定されている場合、コンポーネント スキャンはサブ パッケージを再帰的にスキャンするという印象を受けます。
私のリポジトリとエンティティは、プロジェクトの Maven 依存関係です。それらはパッケージ名 com.foo.bar.xyz の下にあり、私のアプリケーション構成はパッケージ com.foo.bar の下にあります。と書く@ComponentScan(basePackages = "com.foo.bar")
と、@EnableJpaRepositories
リポジトリビーンが見つからないというエラーが表示されます。
@EnableJpaRepositories(basePackages = com.foo.bar.xyz)
ただし、上記のコンポーネントスキャンとともに、のようなトップレベルのリポジトリパッケージを指定すると、リポジトリが正常に検出されます。
これは、リポジトリとエンティティが Maven の依存関係として注入されているためだけに発生していますか? コンポーネントスキャンの再帰部分は、サブパッケージまたはサブディレクトリをスキャンしますか?
spring-boot - @SpringBootApplication をコンポーネント スキャンから除外する
@SpringBootApplication
1つのディレクトリの下に 2 つのクラスがあります。
と
@SpringBootApplication
注釈には@ComponentScan
注釈と注釈が含まれます@EnableAutoConfiguration
。@Configuration
したがって、これらのクラスの 2 つのそれぞれは、別のクラスをBeanと見なします。プロファイルを使用せずにFirstSpringBoodApplication
コンポーネントのスキャンから除外する方法は?SecondSpringBootApplication