Ну, как уже упоминал Уилл, с synchronized
вы не можете на самом деле копировать поведение javax.ejb.Lock
аннотаций, но вы можете сделать это, используя ReadWriteLock
блокировки, но это больше работы в конце.
В качестве примечания: поскольку экземпляры синглтона не являются общими для нескольких JVM (то есть они не являются распределенными объектами), на самом деле нет других преимуществ, которые я могу себе представить, что Lock
обеспечивает в стороне простоту использования и выхода из опора ящика.
Обратите также внимание на то, что «Если эта аннотация не используется, предполагается значение Lock (WRITE)», поэтому вы также не можете избавиться от него.