Java-RequestMapping和变量的扩展顺序

Java-RequestMapping和变量的扩展顺序,java,Java,我不确定@RequestMapping是如何工作的,也无法测试这一点,但我有代码,需要理解以排除故障 如果URL请求是/view/game1,并且在字符串testString行中是{service}和“service”变量已经扩展到/view/game1,request,game1,String.class?就像它在@RequestMapping期间展开,然后在testString初始化期间也展开一样 扩张发生在哪个阶段?有@RequestMapping然后是testString和MyClass

我不确定
@RequestMapping
是如何工作的,也无法测试这一点,但我有代码,需要理解以排除故障

如果URL请求是
/view/game1
,并且在
字符串testString
行中是
{service}
“service”
变量已经扩展到
/view/game1,request,game1,String.class
?就像它在
@RequestMapping
期间展开,然后在
testString
初始化期间也展开一样

扩张发生在哪个阶段?有
@RequestMapping
然后是
testString
MyClass服务=MyClass.getName(testString)

代码中没有“扩展”。对URL路径的一部分进行“提取”(或“解析”),这是在调用
bindTestVariable()
方法时发生的

但是,您应该让Spring使用

另外,Java命名约定是方法名以小写字母开头

@GetMapping(“/view/{service}”)
公共服务响应测试服务(@PathVariable(“服务”)字符串服务)
{
返回MyClass.getName(服务);
}

所以当调用bindTestVariable时,第一个参数
“/view/{service}”
变成
“/view/game1”
对吗?我的意思是
game1
来自URL,而不是任何代码。这就是我想弄明白的,因为出于某种原因,该类返回空字符串,可能是其他类,但在检查其他内容之前,我必须理解这一点。那么第二个参数
“service”
呢?它是在bindTestVariable()过程中提取的吗?@anon否,
“/view/{service}”
不会变成
“/view/game1”
,如果有的话,则相反。
“/view/game1”
路径从
请求中检索,然后与
“/view/{service}”
匹配,这意味着
service=“game1”
。由于
bindTestVariable()
被告知返回
服务的值,因此它返回
“game1”
。使用Spring的
@PathVariable
,Spring将执行相同的匹配,并以
“game1”
作为参数值调用您的方法。因此,第三个“service”参数只是告诉您返回什么?对的实际的函数名为“bindPathVariable()”,尽管我认为如果它是私有的,我会对它进行重命名,尽管它听起来像是与
@PathVariable
有一些关联。
@RequestMapping("/view/{service}")
public ServiceResponse TESTService(HttpServletRequest request, HttpServletResponse response)
{
 String testString = bindTestVariable("/view/{service}", request, "service", String.class);
 MyClass service = MyClass.getName(testString);
 return service;
}