背景信息:组件扫描耗时超过2分钟



我对春天很陌生。我尝试使用context:component-scan来扫描我的包,如

<context:component-scan base-package="org.example">

然而,它似乎非常耗时,需要2多分钟。有没有办法提高它的性能

如果你有很多课,花那么长时间是正常的。很可能还扫描了一些不应该扫描的类。你可以通过只扫描你需要的包来优化它。例如,如果您有带注释的控制器,您可以只扫描包含它们的包。<context:component-scan base-package="org.example.web.controller">

您还可以在<context:component-scan />元素中使用<context:include-filter /><context:exclude-filter />元素,以进一步限制扫描的范围。

您正在使用Spring MVC构建应用程序吗?

大多数开发人员都犯了这样的错误:通过扫描应用程序上下文和*-dispatcher-servlet.xml中的相同内容来加载bean两次。

我正在考虑加载,在你的web.xml中,你必须使用contextloaderlistener加载一个上下文,并声明一个SpringDispatcher servlet。

确保只在*-servlet.xml文件中加载控制器bean。

服务器层(service和dao类)应该从你通过contextloaderlistener加载的文件中加载。

就像Jukka提到的,你可以通过在application-context.xml

中的@Controller注释上使用exclude filter来避免这种情况。

最新更新