Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用@ComponentScan扫描当前包和其他包?_Java_Spring_Component Scan - Fatal编程技术网

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

Java 如何使用@ComponentScan扫描当前包和其他包?,java,spring,component-scan,Java,Spring,Component Scan,如果我只写 @ComponentScan Spring将扫描当前软件包及以下内容 如果我写 @ComponentScan(basePackages = {"my.package.com"}) 我可以隐式地指定当前包和一些显式包吗 像这样的 @ComponentScan(basePackages = {"", "my.package.com"}) 报告说: 如果未定义特定的包,将从 声明此批注的类的包 因此,如果您将任何包声明为扫描,则默认行为将被覆盖。 但是,我不明白为什么需要对当前包进行

如果我只写

@ComponentScan
Spring将扫描当前软件包及以下内容

如果我写

@ComponentScan(basePackages = {"my.package.com"})
我可以隐式地指定当前包和一些显式包吗

像这样的

@ComponentScan(basePackages = {"", "my.package.com"})
报告说:

如果未定义特定的包,将从 声明此批注的类的包

因此,如果您将任何包声明为扫描,则默认行为将被覆盖。 但是,我不明白为什么需要对当前包进行隐式扫描,只要它不是运行时将要更改的内容。 如果要在重构时保护自己,可以改用类型安全:


您可以在类上添加多个
@ComponentScan
注释。或者您可以只指定包而不是“”。
@ComponentScan(basePackageClasses = {Config.class, ClassInPackageToScan.class})