以下代码中的原子整数是否在不同的 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));
    }
}

最佳答案

如果 Controller 是单例,则它是共享的。

既然这看起来像 Spring MVC(你没说),并且因为 @Controller 类默认是单例,那么答案是:

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

它不一定是 static

关于java - 在 REST Controller 中使用 AtomicLong,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60909952/

10-14 11:24