It would be great, but annotation cannot completely replace the synchronized : there are synchronized blocks that cannot be marked with annotation.
In addition, the synchronized unit receives the monitor used for synchronization. It can be delivered dynamically, which gives us some flexibility. Annotations do not allow this, since all parameters must be provided at compile time.
Alexr source share