2010-12-02 25 views
1

J'ai du code qui s'exécute beaucoup (pour chaque requête de service web).Comment mettre en œuvre singleton pour une utilisation dans les serveurs d'applications, singleton OK?

Le code est appelé à partir d'un service Web hébergé par un serveur d'applications (Websphere 7).

Je remarqué Websphere utilise beaucoup de classes qui vraisemblablement sont des objets uniques (tels que BOXMLSerializer (pour de/sérialisation objets métier) ou BOFactory.

Je veux économiser sur le coût de la création d'un nouvel objet pour chaque demande de service Web par exemple.

crée un singleton qui vit pendant toute la durée du temps de fonctionnement du serveur d'applications est la meilleure façon de faire face?

est-ce que Websphere fournit une aide de ce genre de choses?

Répondre

1

Oui, vous pourriez faire un singleton ordinaire. Cependant, en raison du fonctionnement du classloader, il se peut qu'il ne soit pas exactement le même pour vos applications si vous aviez plusieurs applications nécessitant un service similaire. Pour cette raison, vous devriez probablement créer un Singleton Session Bean.

2

erloewe est correct, un simple singleton pourrait fonctionner. En ce qui concerne le Singleton Session Bean, il fait partie de la spécification J2EE6 et n'est pas disponible dans WAS7 (puisqu'il ne s'agit que de J2EE5). Cela fera partie de WAS8 cependant.