從JavaDoc可以看出,@ComponentScan
註釋有幾種不同的註冊組件的方法。如果您不想使用過濾器,最簡單的做法可能是選擇性地添加要掃描的類和子包,而不是應用程序的頂層。例如:
@Configuration
@ComponentScan(
basePackages = { "me.myorg.myapp.services", "me.myorg.myapp.web" },
basePackageClasses = { me.myorg.myapp.config.MyDbConfig.class })
public class MyAppConfig { ... }
還值得指出的是,您可以創建大量的公共靜態配置子類。這些將被組件掃描忽略,但可以正常導入其他配置類。這可以在上述情況下非常有用,如果你想只掃描每個包,但隨後選擇掃描或導入子類:
public class BaseConfig {
@Configuration
public static class DbConfigA {...}
@Configuration
public static class DbConfigB {...}
}
@Configuration
@ComponentScan(
basePackages = { "me.myorg.myapp" },
basePackageClasses = { DbConfigA.class })
public class MyAppConfig { ... }
感謝兩種解決方案,我認爲這會爲我所需要的工作帶來極大。 –