在REST控制器中使用AtomicLong

问题描述 投票:2回答:1

以下代码中的原子整数是否在不同的REST调用之间共享?如果它是静态的怎么办?

public class GreetingController {

    private static final String template = "Hello Docker, %s!";
    private final AtomicLong counter = new AtomicLong();

    @GetMapping("/greeting")
    public Greeting greeting(@RequestParam(value="name", 
        defaultValue="World") String name) {

        return new Greeting(counter.incrementAndGet(),
          String.format(template, name));
    }
}
java spring-mvc spring-restcontroller
1个回答
3
投票

如果控制器是singleton,则为共享。

因为这看起来像Spring MVC (您没有说),并且由于默认情况下@Controller类是单例,所以答案是:

,原子整数在不同的REST调用之间共享。

不必是static

© www.soinside.com 2019 - 2024. All rights reserved.