2009-03-27 6 views

Répondre

0

C'est la question que vous devez vous poser. Y at-il un moyen pour deux threads d'accéder à la même DTO ?. Je suppose que dans toute architecture saine il n'y a pas.

grains de printemps eux-mêmes sont généralement singletons (lorsqu'ils ne sont pas configurés autrement), et doivent être thread-safe.

Si tous les haricots reçoivent DTO en tant que paramètres, retour nouvellement créés DTO, et tous les clients de ces haricots ne gardez pas les références qui traînaient, DTO ne devrait pas être une préoccupation. Au moins d'un point de vue de haut niveau.

Cependant, vous devriez lire sur java concurrency. Je recommanderais Goetz's book si vous avez l'occasion.

Enfin, dans la journée, je me souviens Rod Johnson (le mastermind SpringSource) en disant DTO étaient EVIL. S'il vous plaît prenez le temps de google "DTO evil" et faites votre choix.

+0

Je pensais que DTO étaient ennuyeux aussi, mais ce fut ce qui a été choisi pour moi. – Martlark

+0

cette question SO est déjà le deuxième résultat sur google (pour moi, au moins) pour "DTO evil"! –

4

En bref, oui. Les haricots de printemps peuvent souvent être partagés par plusieurs threads. Portez une attention particulière aux variables membres dans votre haricot de printemps. Si elles sont mutable, que ce soit les rendre immuables ou coordonner l'accès avec un verrou (par exemple avec la synchronisation), ThreadLocal, etc.

+0

Dites-vous que si mon bean est en train de sauvegarder une page et que la page est ouverte deux fois, alors le bean est partagé entre les pages ou est-ce qu'un nouveau bean est créé pour chaque session de page? Je devrai expérimenter quand je retournerai au travail – Martlark

+0

De manière générale, vous devez savoir si votre bean est partagé et comment il est partagé. Je réalise que c'est parfois plus facile à dire qu'à faire. –

+0

@Julien Chastang. merci ... je pense. – Martlark

Questions connexes