Использование AtomicLong в контроллере REST - PullRequest
3 голосов
/ 29 марта 2020

Является ли Atomi c целым числом в следующем фрагменте кода, совместно используемом различными вызовами REST? Что делать, если это было stati c?

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));
    }
}

1 Ответ

4 голосов
/ 29 марта 2020

Он используется совместно, если контроллером является singleton .

Так как это выглядит как Spring MVC (вы не сказали) , и так как @Controller класс по умолчанию - одиночный, затем ответ:

Да , атомное целое c является общим для различных вызовов REST.

Это не не должно быть static.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...