我正在运行 Spring 示例 RESTful 服务器。如果我将控制器类添加到 com.example.restservice 包中,它们就可以工作。但是如果我把相同的类放在包 net.windward.RESTfulEngine.Controllers 中 - 它们找不到。
我在任何地方都看不到任何设置。这些控制器需要位于何处的限制是什么?
Spring 开始扫描@SpringBootApplication
类存在的主包及其所有子包中的包。对于您的情况,您需要使用 @ComponentScan 来扫描外部包。
如果您定义两个包模式来扫描示例,它可以工作
<context:component-scan base-package="com.example, net.windward" />
或者在 Java 代码中会像
@ComponentScan({"com.example","net.windward"})
但是,如果您只想扫描一个包模式,那么您需要保留它们,以便示例使用 com 开始所有内容并添加其余包。 它从"com."或您在配置中定义的任何内容开始进行组件扫描,它会进入所有子目录,但只会进入子目录,它不会扫描它。因此,如果您想扫描com.和网络。你需要定义它们,以便 Spring 可以进入它们的两个子目录。 但方法可以完成这项工作。