Spring лучшая практика для блокировки доменных объектов?
-
10-07-2019 - |
Вопрос
Используя бины сущностей EJB, вы можете настроить бин так, чтобы, когда у потока был доступ к бину сущности EJB, другие потоки не могли получить доступ к бину EJB. Контейнер будет блокировать другие потоки, пока поток с блокировкой не будет закончен с bean-компонентом. Есть ли «весенний путь»? сделать это? Или вам просто нужно использовать стандартные подходы синхронизации параллелизма Java, чтобы справиться с этим?
Решение
Если вы имеете в виду сущности, предшествующие EJB3, то эта модель немного испорчена и, вероятно, не та, которой вы хотите следовать. Следует избегать одновременного доступа к одному и тому же экземпляру Java-объекта постоянной сущности. Вместо этого каждый поток должен получить свой собственный экземпляр объекта из контейнера.
Обычный подход к контролю одновременного доступа к объектам заключается в использовании транзакций и разрешении нагрузки на базу данных. Spring + Hibernate / JPA более чем способен на это.