Programmatically call @Controller

Programmatically call @Controller

4

我正在转换使用Spring MVC的Controller实现的代码来使用注释构造型@Controller。除了一个问题,一切都很顺利:

给定请求/响应,如何以编程方式处理基于注释的控制器的请求?

以前,(无论实施如何)我都能打电话:

controller.handleRequest(request, response)

与注释相同的是什么?我曾经假设会有一些(可能是静态的)实用程序类:

SpringAnnotationBasedControllerUtils.handleRequest(<? extends @Controller> handlerObject, HttpServletRequest request, HttpServletResponse response);

处理将请求映射到@Controller构造型允许的动态签名的细节,但我找不到这样的东西。

有什么建议?

(请不要评论为什么这是一个坏主意,或者对于“好”设计应该是不必要的等等。这是维护中的代码,必须尽可能无创,因此目前不能完全重写。 )

谢谢!

分享
分享此问题的链接
| 改善这个问题
skaffman
352k90 90金徽章746 746银徽章733 733枚铜徽章
2009年8月24日20:08
Brian Kent
26591个 1金徽章21 21银徽章29 29枚铜徽章
3

您只需在对象上调用该方法即可。这是注释驱动控制器的一大优势,您可以只编写代码所需的方法,而不必将形状变形以符合接口。因此,只需将控制器bean连接到代码中,然后直接调用该方法。

或者你是说你想重新发明Spring将请求映射到注释控制器的机制?如果是这样,请查看Spring AnnotationMethodHandlerAdapterDefaultAnnotationHandlerMapping的源代码虽然它很复杂 - 带注释的控制器使编写控制器变得更容易,但底层机制却令人不快。

分享
分享这个答案的链接
| 改善这个答案
回答于2009年8月24日20:13
skaffman
352k90 90金徽章746 746银徽章733 733枚铜徽章
  • 我有一个HandlerInterceptor,有时需要手动调用一小部分控制器,因此需要基本上重新引入控制器接口。看起来AnnotationMethodHandlerAdapter会做我需要的!谢谢!布赖恩·肯特 8月24日09时20:24
3

Spring有一个叫做a的东西HandlerAdapter,它接受一个请求和一个控制器实现并调用它。这是为了允许其他框架中的控制器在Spring中重用。你想要AnnotationMethodHandlerAdapter我相信你可以自己实例化:

HandlerAdapter adapter = new AnnotationMethodHandlerAdapter();
ModelAndView modelAndView = adapter.handle(request, response, controller);

我自己做了类似的事情 - 但我不确定我是不是要留下一些必要的东西。

分享
分享这个答案的链接
| 改善这个答案
回答于2009年8月24日20:17
太平鸟
15.6k7 7金徽章57 57银徽章76 76枚青铜徽章
0

您可以引入自己的接口以轻松实现这种通用句柄行为 - 虽然重写但是 - 您希望以编程方式执行什么操作?例如,什么样的决策树 - 内置参数映射相当灵活。

分享
分享这个答案的链接
| 改善这个答案
回答于2009年8月25日0:58

你的答案

    注册或登录

    使用Google注册
    使用Facebook注册
    使用电子邮件和密码注册

    作为嘉宾发布

    名称
    电子邮件

    必需,但从未显示

    点击“发布您的答案”即表示您同意我们的服务条款隐私政策cookie政策

    不是你要找的答案?浏览其他问题标记为 询问您自己的问题



    Tags: published
    September 05, 2019 at 06:33PM
    Open in Evernote

    评论

    此博客中的热门博文

    Telegram MTProto Proxy 介绍说明 – 开源代码|技术|教程资源|网络资源|首页不显示 – 如有乐享

    监控FRPS端口并自动重启进程linux脚本_FRP教程_电脑博士

    进阶Spring Boot(二)---Tomcat与Undertow 吞吐量对比 - 简书