为什么包对 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 可以进入它们的两个子目录。
但是方法会起作用。
我有 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 可以进入它们的两个子目录。 但是方法会起作用。