如何关闭org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping detectHandlers,我将spring 3启动调试模式,我看到所有类都调用'detectHandlers'
示例
[org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping detectHandlers org.springframework.web.servlet.handler.AbstractDetectingUrlHandlerMapping.detectHandlers(AbstractDetectingUrlHandlerMapping.java:86)] - Rejected bean name 'org.springframework.security.authenticationManager': no URL paths identified
[org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping detectHandlers org.springframework.web.servlet.handler.AbstractDetectingUrlHandlerMapping.detectHandlers(AbstractDetectingUrlHandlerMapping.java:86)] - Rejected bean name 'systemProperties': no URL paths identified
[org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping detectHandlers org.springframework.web.servlet.handler.AbstractDetectingUrlHandlerMapping.detectHandlers(AbstractDetectingUrlHandlerMapping.java:86)] - Rejected bean name 'systemEnvironment': no URL paths identified
只有我的“控制器”类有处理程序,所有其他类都没有。我正在努力加快春季创业。无论如何要关闭每个类的自动检测处理程序功能?
答案 0 :(得分:1)
“只有我的”控制器“类有处理程序,而所有其他类都没有”
你是对的。并且为了知道类是否是控制器,Spring必须检查它。这正是您在此处看到的内容:Spring正在寻找类型级别@Controller
或@RequestMapping
的存在。
答案 1 :(得分:1)
您可以跳过不必要的课程using filters:
<beans>
<context:component-scan base-package="org.example">
<context:exclude-filter type="regex" expression=".*NotControllerBean"/>
</context:component-scan>
</beans>
对我来说,最高性能和最清晰的解决方案是将控制器移动到专用软件包,并仅使用此软件包进行组件扫描。