当前位置: 首页 > 知识库问答 >
问题:

RequestMappingHandlerMapping的isHandler方法对RequestMapping和控制器注释都是真的

锺离德庸
2023-03-14

我正在研究Dispatcher Servlet代码。在这里,我发现调度程序servlet使用HandlerMap来选择请求的处理程序。此外,Request estMappingHandlerMap用作HandlerMap的实现。现在,如果考虑的bean具有@Controller或@Request estMap注释,则isHandlerMethod of Request estMappingHandlerMap返回true。如果某些bean在类级别只应用了@Request estMap注释,它仍然会被视为Handler吗?。任何帮助都将不胜感激。

共有1个答案

佟英武
2023-03-14

@RequestMapping和@Controller注释有不同的含义。请求映射用于决定使用哪个类/方法来处理到特定URL的请求。如果您查看@Controller adnotation的源代码,就会发现它是用@Component本身注释的。通过这种方式,它可以用来设置组件扫描,将类的实例注册为bean。

我想知道,因为这些注释通常一起使用,所以这样做是为了获得微小的性能提升。此外,您可以通过java config或xml以不同的方式声明您的控制器。

编辑:我用java配置中声明的控制器bean做了一个快速原型,没有@controller注释。答案是肯定的,该方法将用于处理请求,即使该类没有注释。

 类似资料:
  • 我在想一个一般的请求映射问题。在不选择任何特定MVC框架的情况下,将基于注释的请求映射与简单的参数检查器映射进行比较,哪一个更好? 假设我想创建一个web服务,它应该处理例如“添加”和“删除”操作。 使用注释,它看起来像这样: 使用参数,它将如下所示: 在第二个示例中,假设Operation对象是从JSON对象构建的。我们的想法是,我们只有一个通用的操作,它有一个类型参数,我们总是调用相同的请求(

  • 我们正在构建某种自动自描述REST服务(实时文档生成)。为此,我们有一个控制器方法,它查找所有控制器beans,并获取请求映射信息,以便在一个友好的html页面中显示它们。 为此,我们使用 MetadataReader(通过 CachingMetadataReaderFactory 创建)来获取类的元数据。当我们获取公共方法的 MethodMetaData 时,我们会找到 RequestMappi

  • 使用Spring Boot 1.3.6. RELEASE,我正在尝试使用JUnit、Mockito和MockMvc对控制器方法进行单元测试。我已经构建了一个自定义约束验证器(扩展了ConstraintValidator),它可以自动构建服务。我的目标实体用自定义验证器注释和组进行注释。我的控制器方法签名如下: 在运行时,一切正常。 我想通过完全模拟我的自定义约束验证器,或者只是模拟验证器使用的ti

  • 我的控制器类如下: 我有以下资源服务器配置 最后,我的测试如下所示: 问题是我总是获得401 HTTP状态,并显示消息“unauthorized”,“error\u description”:“访问此资源需要完全身份验证”。 我应该如何为@PreAuthorated注释控制器方法方法编写测试?

  • 在全局方法安全标记中使用切入点表达式 这种方法也失败了:控制器的方法没有注释仍然可以访问。

  • 我有一段代码- 但是,ConditionalOn 批注无法按预期方式工作。我不希望控制器执行,如果不是的。注意 - 位于中 我错过了什么吗?可能是类级别的注释?