我正在关注this教程以设置Spring Restful Service。在教程的底部,它说:
另请注意id属性如何从1更改为2.这证明您正在跨多个请求对抗同一个GreetingController实例,并且每次调用时其计数器字段都会按预期递增。
但代码是在每个请求上创建一个新实例,传入计数器的新值:
@RequestMapping("/greeting")
public @ResponseBody Greeting greeting ( @RequestParam (value="name", required=false, defaultValue="World") String name) {
return new Greeting(counter.incrementAndGet(), String.format(template, name));
}
注意"新问候"码。我在这里遗漏了什么,或者教程解释不正确吗?
答案 0 :(得分:0)
我认为你让Greeting
和GreetingController
感到困惑。您只有一个控制器(计数器在控制器内部)和多个Greeting
实例。
答案 1 :(得分:0)
另请注意id属性如何从1更改为2.这证明了 您正在对同一个GreetingController实例进行操作 跨多个请求,以及它的计数器字段 按预期在每次通话时递增。
这意味着GreetingController
的 单个实例 通过网址/greeting
提供所有GET请求
请注意,GreetingController
有一个名为final
的{{1}}字段。如果为不同的请求创建了不同的counter
个实例,GreetingController
将始终返回counter
。由于1
正在返回counter
等等,因此作者断言只有1,2,..
的 单个实例 正在服务所有请求。
响应涉及创建GreetingController
对象,该对象包装new Greeting
返回的新值。不要将它与counter.incrementAndGet()