2017-03-19 6 views
1

私はの反射を使用していると考えていましたが、すべてのクラスをスキャンしてその注釈、メソッドです。しかし、反射を使用して聞いたは、パッケージ名でクラスの詳細を取得できません。 次に、指定されたパッケージのスプリングスキャンのクラスはどのようになっていますか?springは<context:component-scan>で指定されたパッケージのすべてのクラスをスキャンしますか?

答えて

1

正直なところ、私はすべてを詳細に覚えていませんが、私が間違っていない場合はコンポーネントスキャンがComponentScanBeanDefinitionParser.classによって処理されました。すべての基本パッケージを探して、それらのbeanDefinitionsをスキャンします。

スキャンはClassPathBeanDefinitionScanner.classを実行し、そのメタデータを使用してbeanDefinitionsのすべての候補を見つけます。

基本パッケージ内の候補を検索すると、ClassPathScanningCandidateComponentProvider.classがResourcePatternResolver.classで実行されます。

このメカニズムがデバッガとどのくらい動作するかを調べてみてください。 この情報がお役に立てば幸いです。

関連する問題