4

Javaについて十分に理解していませんが、単一サーバーのTomcatアプリケーションでSpring Java BeanのDTOオブジェクトを一覧表示したり変更したりするときに、同時性の問題について心配する必要がありますか?

4

2 に答える 2

4

要するに、はい。多くの場合、Spring Bean は複数のスレッドで共有できます。Spring Bean のメンバー変数に特に注意してください。それらが変更可能な場合は、それらを変更不可にするか、ロック (同期など) や ThreadLocal などを使用してアクセスを調整します。

于 2009-03-27T17:01:43.287 に答える
0

これはあなたが自分自身に尋ねる必要がある質問です。2つのスレッドが同じDTOにアクセスする方法はありますか?どんな正気のアーキテクチャにもありません。

Spring Bean自体は通常シングルトンであり(他に構成されていない場合)、スレッドセーフである必要があります。

すべてのBeanがパラメーターとしてDTOを受け取り、新しく作成されたDTOを返し、それらのBeanのすべてのクライアントが参照をぶら下げたままにしない場合、DTOは問題になりません。少なくとも高レベルの観点から。

ただし、Javaの並行性について読む必要があります。機会があればゲッツの本をお勧めします。

最後に、当時、ロッド・ジョンソン(スプリングソースの首謀者)がDTOは悪だと言っていたのを覚えています。「DTO悪」をググって気をつけてください。

于 2009-03-27T16:28:31.357 に答える