为什么包对 Spring RESTful 控制器很重要 类

Why does the package matter for Spring RESTful controller classes

我有 Spring 示例 RESTful 服务器 运行。如果我将控制器 classes 添加到 com.example.restservice 包中,它们就可以工作。但是如果我把相同的 class 放在包 net.windward.RESTfulEngine.Controllers 中 - 他们找不到。

我在任何地方都看不到任何设置。什么限制了这些控制器的位置?

Spring 开始从您的 @SpringBootApplication class 存在的主包中扫描包及其所有子 packages.for 您需要使用的案例 @ComponentScan 为了扫描外部包。

如果您定义两个包模式来扫描一个示例,它可能会起作用

<context:component-scan base-package="com.example, net.windward" /> 

或者在 Java 中代码会像

@ComponentScan({"com.example","net.windward"})

但是如果您只想扫描一个包模式,那么您需要保留它们以便示例以 com.并添加其余的包裹。 它从“com”开始进行什么组件扫描。或您在配置中定义的任何内容,它进入所有子目录,但仅进入子目录,它不会扫描它。所以如果你想扫描 com.和网。您需要定义它们,以便 spring 可以进入它们的两个子目录。 但是方法会起作用。