如果我在Spring工具包中创建了一个标准spring项目,那么它的工作效果非常好!
我访问localhost:8080/greeting
并得到我的hello world
响应。
如果我将这2个文件复制到源代码树中的另一个包中,然后访问localhost:8080/greeting
,则会得到一个:
白色标签错误页 此应用程序没有/error的显式映射,因此您认为这是一种退步。2014年10月17日下午18:15:45有一个意想不到的错误(type=Not Found,status=404)。
将这3个类移动到相同的默认包中可以解决这个问题,但是从源树组织的角度来看,这不是我想要做的。
我希望这是由于一些自动配置,所以请有人告诉我,我必须做什么,让我的项目支持多个包作为控制器和对象。
发布于 2014-10-17 09:41:44
如果您的代码如这教程中所示,那么打开servlet-context.xml
并更改
<context:component-scan base-package="..."/>
您可以列出多个包。使用逗号作为分隔符。
更新:
这是用于基于XML的配置。
如果您创建了"Spring“,那么配置就是基于注释的。在这种情况下,您需要搜索带有@ComponentScan
注释的类。通常,它是一个名为AppConfig的主类或类。
默认情况下,它从类的包开始递归搜索控制器和其他组件。您可以向该注释添加如下参数:
@ComponentScan({ "x.y.z.services", "x.y.z.controllers" })
发布于 2019-08-14 04:45:53
假设主方法在名为com.setech.app的包中,而控制器位于名为com.setech.controller的包中。
对于spring 1.3.x,请向上添加"scanBasePackages“,如下所示。
@SpringBootApplication(scanBasePackages = { "com.setech"} )
public class ResttanslatorApplication {
public static void main(String[] args) {
SpringApplication.run(ResttanslatorApplication.class, args);
}
}
来自这里的卡米尔·沃兹尼亚克( Kamil )获得了信贷。
发布于 2020-09-14 22:54:33
将Springbootapplication(application.java)文件移动到另一个包解决了这个问题。将其与控制器和存储库分离。您可以使用任意数量的包,并让多个controllers.But使用@ComponenScan(basePackages={" "," "})
并提及所有包。
https://stackoverflow.com/questions/26430257
复制