Если у вас нет доступа к изменяемым статическим переменным класса (потенциально неприятно для начала), первый - подходящий способ синхронизации.
Поймите, что пока Spring создает только один экземпляр одноэлементного компонента и используетдля любого, кто зависит от bean-компонента этого типа, синглтон не статическая сущность.Нет ограничений компилятора, препятствующих созданию экземпляра этого класса самостоятельно вне контекста Spring.Это просто единственный случай, потому что Spring знает, чтобы не делать больше из них ... не потому, что это невозможно сделать.Суть, которую я пытаюсь здесь подчеркнуть, заключается в том, что неправильно граничить с неправильным, чтобы провести параллель между данными уровня класса и данными синглтона.
В результате синхронизация должна происходить в самой узкой области действия.В вашем случае это означает синхронизацию с экземпляром объекта, содержащим общие данные, а не с более широкой областью действия всего класса.