gpt4 book ai didi

java - spring 如何将参数注入(inject)到 Controller 方法中

转载 作者:行者123 更新时间:2023-12-02 05:17:26 24 4
gpt4 key购买 nike

public ModelAndView loginPage(HttpServletRequest request, Locale locale) {}

如您所知,Spring 将 HttpServletRequestLocale 注入(inject)到该方法中。我想知道它是如何在幕后完成的?我的猜测是,背后有一个数据转换系统在工作获取 http 请求 header 和正文数据并将它们填充到给定的合适的类中在编码器的参数中。我说得对吗?

最佳答案

使用 Spring MVC 时,有多个部分需要移动来解决映射 HandlerMapping 和执行 HandlerAdapter 的问题。

扫描每个@Controller以查找@RequestMapping注释方法,这些方法根据@RequestMapping中可用的元数据映射到URL注释,这是由 RequestMappingHandlerMapping 完成的类(class)。

当请求传入时,特定方法会与传入请求相匹配。此选定方法通过 RequestMappingHandlerAdapter它查阅所有方法参数。方法参数的实际处理留给不同的 HandlerMethodArgumentResolver实现(您也可以实现您自己的)。

方法的返回值也会发生同样的情况,尽管它被委托(delegate)给 HandlerMethodReturnValueHandler .

关于java - spring 如何将参数注入(inject)到 Controller 方法中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26802642/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com