明らかに、AnnotationConfigApplicationContext#scan()は再帰的にパッケージをスキャンします。春のパッケージの非再帰スキャン
私は確信していませんが、私の@Component
クラスのうちの1つは、上記のパッケージのサブパッケージ内にあることを除いて明示的には言及されていません。
最初の質問:Springがパッケージを再帰的にスキャンするのは本当ですか?
2番目の質問は、それが本当だった場合、これを無効にする方法ですか?
明らかに、AnnotationConfigApplicationContext#scan()は再帰的にパッケージをスキャンします。春のパッケージの非再帰スキャン
私は確信していませんが、私の@Component
クラスのうちの1つは、上記のパッケージのサブパッケージ内にあることを除いて明示的には言及されていません。
最初の質問:Springがパッケージを再帰的にスキャンするのは本当ですか?
2番目の質問は、それが本当だった場合、これを無効にする方法ですか?
に述べたように、注釈付きクラスが "コンポーネント" であることを示しています。そのようなクラスは、注釈ベースの構成を使用する場合はの自動検出の候補となり、のクラスパスの走査の場合はの候補とみなされます。スキャンおよび/または注釈を付ける&設定がthis answerをチェックした構成について
、私はサブパッケージのスキャンを無効にすることについて、それをより良い
を説明することはできません:私はthisがあなたの質問に答えると思います(または第二の最も投票の答えのために質問)。あなたの@Configurationファイルで
、それが明示的に@ComponentScan注釈を経由してスキャンする必要のあるパッケージを定義することも可能です。例えば
@Configuration
@ComponentScan(basePackages = "my.package.first, my.package.second,
my.package.etc")
ただし、これらのパッケージのサブパッケージ内のすべてのコンポーネントが自動的に含まれます。あなたはこれを無効にしたい場合は、これは@ComponentScanするフィルタを適用することによって行うことができる
すなわち
@ComponentScan(basePackages = "my.package", excludeFilters =
@ComponentScan.Filter(type = FilterType.ASPECTJ,
pattern = "my.package.*"))
再帰について任意の単語が表示されないのですか? – Dims
@Dims AFAIK、anotatingは再帰、自動検出/スキャン、はいを使用しません。 –
だから、質問はスキャンについてです:それは再帰的で、それを制御する方法ですか?これについては – Dims