Нужно ли беспокоиться о параллелизме с бобами tomcat spring? - PullRequest
3 голосов
/ 27 марта 2009

Не совсем понимаю, что такое Java, нужно ли беспокоиться о проблемах параллелизма при перечислении и изменении объектов DTO в моих весенних компонентах Java в приложении tomcat для одного сервера?

Ответы [ 2 ]

4 голосов
/ 27 марта 2009

Короче да. Spring Beans часто может использоваться несколькими потоками. Обратите особое внимание на переменные-члены в вашем Spring Bean. Если они изменчивы, либо сделайте их неизменными, либо координируйте доступ с помощью блокировки (например, с синхронизацией), ThreadLocal и т. Д.

0 голосов
/ 27 марта 2009

Это вопрос, который вам нужно задать себе. Есть ли способ для двух потоков получить доступ к тому же DTO ?. Я думаю, в любой здравомыслящей архитектуре нет.

Сами пружинные компоненты обычно являются синглетонами (если не настроены иначе) и должны быть поточно-ориентированными.

Если все бины получают DTO в качестве параметров, возвращают вновь созданные DTO, и все клиенты этих бинов не хранят ссылки, DTO не должны быть проблемой. По крайней мере, с точки зрения высокого уровня.

Однако вы должны прочитать о параллелизме Java. Я бы порекомендовал книгу Гетца , если бы у вас была такая возможность.

Наконец, в свое время я помню, как Род Джонсон (вдохновитель источника) сказал, что DTO - это ЗЛО. Пожалуйста, найдите время, чтобы погуглить "DTO evil" и принять решение.

...