이 빈의 비즈니스 메서드는 두 가지 방법으로 접근을 통제합니다. @Lock(LockType.WRITE)는 메서드 실행 도중엔 다른 클라이언트가 빈에 접근하지 못하게 잠급니다. @Lock(LockType.READ)은 메서드 동시 접근을 허용하고 다른 클라이언트의 빈 접근을 허용합니다. 보통 데이터를 수정하는 메서드는 WRITE를 붙여 데이터 수정 중에 접근을 차단합니다. addUser()는 타입이 WRITE인 메서드라서 getName()을 호출한 클라이언트는 addUser()가 할 일을 마친 후에야 자신도 마칠 수 있습니다. addUser()가 주어진 타임아웃 시간 내에 처리를 끝내지 못하면 컨테이너가 ConcurrentAccessTimeoutException 예외를 던집니다. 타임아웃 시간 역시 애너테이션으로 설정할 수 있습니다(코드 4-12).
LockType을 클래스에 붙이면 별도로 LockType을 밝히지 않은 모든 비즈니스 메서드에 적용됩니다. LockType은 기본이 WRITE라서 동시 접근이 필요한 메서드만 따로 설정해도 충분합니다.