在我们的应用程序中,我们遇到了组件扫描的性能问题。它相当慢,并且其性能不依赖于扫描的包中的类的数量。
在我们的sping配置文件中,每一行都像这样:
<context:component-scan base-package="foo.bar" />我们的应用程序的启动时间增加了2分钟。扫描的包中的类的数量并不重要-对于具有10和1k类的包,我们都遇到了相同的延迟。
为什么component-scan的性能不依赖于扫描包的大小?
我们使用混合的方法来创建spring beans -我们同时使用xml定义和组件扫描。这会是导致这种行为的原因吗?
发布于 2013-10-11 19:39:30
Spring所做的就是遍历您在组件扫描中给出的包中的所有类,如果类有Component、Repository或Service,它会在上下文中注册一个bean。所以类的数量很重要。你必须只扫描包含注解类的包(扫描非注解类也需要时间)。此外,您只能使用一个组件扫描标签,并列出所有的软件包。同时使用xml和组件扫描应该不是问题,只要它们不重复。
https://stackoverflow.com/questions/19314922
复制相似问题