如何使用@ComponentScan扫描当前包和其他包?

时间:2017-04-04 08:20:20

标签: java spring component-scan

如果我只写

@ComponentScan

Spring将扫描当前包及以下。

如果我写

@ComponentScan(basePackages = {"my.package.com"})

我可以隐式指定当前包以及一些显式包吗?

像这样的东西

@ComponentScan(basePackages = {"", "my.package.com"})

1 个答案:

答案 0 :(得分:1)

JavaDoc说:

  

如果未定义特定包,则会从中进行扫描   声明此批注的类的包。

因此,如果您声明要扫描的任何包,则将覆盖默认行为。 但是,我无法看到为什么需要对当前包进行隐式扫描的原因,只要它不会在运行时更改。 如果您想在重构时保护自己,可以使用类型安全basePackageClasses代替:

@ComponentScan(basePackageClasses = {Config.class, ClassInPackageToScan.class})