V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
gotonull
V2EX  ›  程序员

Spring MVC 参数映射问题请教

  •  
  •   gotonull · Apr 15, 2020 · 2621 views
    This topic created in 2210 days ago, the information mentioned may be changed or developed.

    @RestController public class TestController { @GetMapping("/") public String test(String name, String sex) { return "name:" + name + "sex:" + sex; } }

    请教一下各位这种情况的时候,springMVC 是如何做到准确的将请求中的 name 和 sex 映射到对应的位置。因为编译后就算是通过反射也是拿不到方法的参数名称啊。( java8 指定特殊的编译参数不算)

    6 replies    2020-04-15 19:05:24 +08:00
    kkkkkrua
        1
    kkkkkrua  
       Apr 15, 2020 via iPhone
    debug 进去就一清二楚了
    waa
        2
    waa  
       Apr 15, 2020
    ParameterNameDiscoverer
    cookii
        3
    cookii  
       Apr 15, 2020
    org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver
    gwybiaim
        4
    gwybiaim  
       Apr 15, 2020
    普通反射拿不到,但是字节码里面有变量名称信息
    BBCCBB
        5
    BBCCBB  
       Apr 15, 2020
    ClassReader 或者 java8 -parameter 参数. 然后看 HandlerMethodArgumentResolver
    gotonull
        6
    gotonull  
    OP
       Apr 15, 2020
    谢谢各位的解答,我找到答案了。
    spring MVC 底层用了 ASM 来获取方法的形参名
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   751 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 42ms · UTC 21:45 · PVG 05:45 · LAX 14:45 · JFK 17:45
    ♥ Do have faith in what you're doing.