Я начал читать об одноэлементном сеансовом компоненте и аннотациях, используемых для использования параллелизма, управляемого контейнером. Я не вижу пользы от этого по сравнению с простым использованием ключевого слова synchronized, поэтому подозреваю, что мне не хватает чего-то важного. Рассмотрим этот пример из книги « Enterprise JavaBeans 3.1 » Рубинджер и Берк, О'Рейли:
@javax.ejb.Lock(javax.ejb.LockType.READ)
public String concurrentReadOnlyMethod(){...}
@javax.ejb.Lock(javax.ejb.LockType.WRITE)
public void allowOnlyOneWriteAtATimeMethod(String stringToSet){...}
Как это лучше, чем пропускать аннотации вместе в случае чтения и использовать синхронизированное ключевое слово
в случае записи, например:
public String concurrentReadOnlyMethod(){...}
public synchronized void allowOnlyOneWriteAtATimeMethod(String stringToSet){...}