2017-04-04 101 views
0

如果我只写如何使用@ComponentScan扫描当前和其他一些软件包?

@ComponentScan 

Spring将扫描当前软件包和下面。

如果我写

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

我可以暗中以及一些明确的包指定当前的包?

像这样的事情

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

您可以在类中添加多个'@ ComponentScan'注解。 –

+0

或者你可以指定你的包而不是“”。 – john16384

回答

1

JavaDoc说:

如果没有定义特定的软件包,将会从 包装声明此标注类的发生扫描。

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

@ComponentScan(basePackageClasses = {Config.class, ClassInPackageToScan.class}) 
相关问题