ComponentScan

你可以使用 @ComponentScan 來配置更復雜的包掃描。還有 @ComponentScans 作為容器註釋,聚合了幾個 @ComponentScan 註釋。

基本程式碼示例

@ComponentScan
public class DemoAutoConfiguration {
}
@ComponentScans({@ComponentScan("com.example1"), @ComponentScan("com.example2")})
public class DemoAutoConfiguration {
}

說明沒有配置的 @ComponentScan 就像 @SpringBootApplication 一樣,並掃描用這個註釋註釋的類下的所有包。

在這個例子中,我將陳述 @ComponentScan 的一些有用屬性:

  1. basePackages - 可用於宣告要掃描的特定包。
  2. useDefaultFilters - 通過將此屬性設定為 false(預設值為 true),你可以確保 spring 不會自動掃描 @Component@Repository@Service@Controller
  3. includeFilters - 可用於包括特定的 spring 註釋/正規表示式模式以包含在包掃描中。
  4. excludeFilters - 可用於排除特定的 spring 註釋/正規表示式模式以包含在包掃描中。

還有更多屬性,但這些屬性是最常用於自定義程式包掃描的屬性。