J'ai lu à maintes reprises que nous ne sommes pas censés utiliser des variables statiques dans un bean session. Alors, comment suis-je censé obtenir un enregistreur pour ce haricot et l'utiliser sur toutes les méthodes de haricot?Si nous ne sommes pas autorisés à utiliser des variables statiques dans les beans session, comment définir un logger?
Répondre
Je pense que vous interprétez la "règle" un peu trop rigidement.
Vous ne devez stocker aucune sorte d'état d'une servlet/session/bean dans une variable statique, car cette référence est partagée par toutes les instances de ce type.
Toutefois, un enregistreur (généralement ou non) doit contenir n'importe quel état. Il est parfaitement bien l'OMI d'utiliser des références statiques à une instance Logger, si vous suivez la pratique habituelle de nommer/catégoriser vos enregistreurs sur la base classname:
public class SomeTypeOfBean {
private static final Logger log = Logger.getLogger(SomeTypeOfBean.class);
//...
}
Vous pouvez simplement en faire un membre non statique.
lecture seule des références statiques non-bloquant (qui est ce qu'un enregistreur est) sont généralement bien, s'il n'y a aucun problème avec quelques copies d'eux autour (à la discrétion du serveur d'application). Cela dit, rien ne dit qu'un enregistreur doive être dans une variable statique. Il peut s'agir d'une variable d'instance (et d'une variable transitoire si votre enregistreur n'est pas sérialisable). Une chose à réaliser avec les règles EJB - il est très important de comprendre pourquoi ils existent et ce qui pourrait trébucher un serveur d'applications (si vous développez en effet un serveur d'applications indépendant). Une fois que vous avez compris cela, vous savez comment travailler avec eux (et ils ont du sens étant donné ce qu'un serveur d'application est censé faire avec votre classe). Si c'est juste un tas de règles arbitraires écrites sur un document, alors vous ne serez pas en mesure de comprendre comment travailler avec eux, au lieu d'être piégé par eux.
- 1. Fils dans les beans session
- 2. Lorsque vous utilisez des beans de session en façade, pourquoi utiliser également des beans de session métier?
- 3. Comment définir et utiliser des variables statiques dans la classe F #
- 4. Asp.Net/C# persistance des variables statiques
- 5. Variables statiques dans ASP.NET
- 6. Pourquoi regrouper les beans de session sans état?
- 7. Pourquoi un InitialContext sur des beans session EJB3 distants
- 8. Supprimer le site Web pour le public, mais laisser pour tester ... "Nous ne sommes pas ouverts"
- 9. Variables statiques, compilation séparée
- 10. Si nous ne pouvons pas lier une commande de MouseBinding, que devons-nous faire?
- 11. Variables statiques dans R
- 12. ASP.NET C# Les variables statiques sont globales?
- 13. Puis-je utiliser __init__.py pour définir des variables globales?
- 14. Comment envoyer des variables d'un contrôle utilisateur à un autre sans utiliser de session?
- 15. Comment déclarer des variables statiques dans Delphi 2009?
- 16. Pourquoi ne puis-je pas utiliser des membres statiques, par exemple des structures statiques, dans mes classes de VS2008?
- 17. php ne met-il pas à jour les variables de session?
- 18. Existe-t-il des équivalents à "this" pour les variables statiques dans C#
- 19. Si les types de base sont des objets, pourquoi ne pouvons-nous pas le faire?
- 20. Mettre une image et les variables dans un message HTTP (Ne pas utiliser FileUpload Control)
- 21. Comment déclarer deux variables statiques différentes? (C++)
- 22. Comment définir la cachabilité des fichiers statiques dans IIS?
- 23. Comment activer les variables de session dans sharepoint?
- 24. Vim: comment utiliser les variables dans vimrc?
- 25. jquery détecter quand nous sommes à la fin du texte dans textarea
- 26. variables statiques dans une fonction anonyme
- 27. Comment déplacer des variables non statiques de l'interface à l'implémentation dans objectiveC?
- 28. ASP.NET C# Application_Error dans Global.asax ne peut pas accéder aux variables de session
- 29. Variables de session dans JSP
- 30. Débogage iPhone: les variables ne sont pas à jour?
Je ne suis pas sûr (d'où le commentaire et pas une réponse) mais ne pourriez-vous pas simplement appeler une méthode log statique dans votre enregistreur ou est-ce considéré comme aussi mauvais qu'une variable statique? –