关闭org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping detectHandlers

时间:2013-07-09 03:27:37

标签: java spring spring-mvc spring-security

如何关闭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

只有我的“控制器”类有处理程序,所有其他类都没有。我正在努力加快春季创业。无论如何要关闭每个类的自动检测处理程序功能?

2 个答案:

答案 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>

对我来说,最高性能和最清晰的解决方案是将控制器移动到专用软件包,并仅使用此软件包进行组件扫描。