5

Quelle est la meilleure façon de gérer les ensembles de propriétés à appliquer à EJB, et de pouvoir facilement les faire varier entre les machines/environnements (par exemple, DEV, TEST, PROD)? Par exemple, existe-t-il un moyen de configurer vos propriétés EJB sur App Server (ce qui garantit que vous pouvez les modifier par machine/environnement).J2EE Application/Configuration de Bean Bonnes pratiques?

Plus précisément:

1) J'ai un EJB Singleton qui a besoin de certaines propriétés définies (environnement) spécifique. Des annotations sont-elles utilisées pour indiquer au conteneur EJB où rechercher ces propriétés et les appliquer automatiquement au bean? 2) Quelle est la meilleure façon de gérer différents ensembles de propriétés, c'est-à-dire dev, test, prod, afin que l'application J2EE soit portable entre les serveurs et que vous puissiez gérer de façon transparente les propriétés spécifiques à chaque serveur?

S'il existe de bons liens de documentation, faites le moi savoir. J'ai fait le tour de Google et je n'ai rien vu directement aux points ci-dessus.

Répondre

2

J'utilise une classe d'assistance singleton "PropertiesHelper" qui a un membre Properties et lit à partir d'un fichier de configuration xml lors de la première tentative d'accès à la propriété. L'assistant encapsule l'ensemble des paramètres de configuration et empêche leur lecture sur le disque plus d'une fois.

L'emplacement du fichier est spécifié dans mes opts java et lu par PropertiesHelper en utilisant System.getProperty()

En ce qui concerne les propriétés du système des annotations, je ne crois pas que Java supporte nativement, mais si vous êtes si incliné, vous voudrez peut-être regarder quelques cadres AOP/Dependency Injection comme Google Guice qui sont mieux à ce "transversal".

+0

Merci pour la réponse. J'espérais quelque chose au niveau du serveur d'applications, similaire à la façon dont vous configurez les propriétés de pool de base de données et de connexion utilisées, qui sont connectées à la structure de persistance du serveur d'applications. C'est une conception soignée, car les paramètres sont liés à l'instance de App Server, qui est généralement liée à un environnement spécifique (par exemple, DEV, TEST, PROD). –

+0

Je ne connais rien de tel, même si j'imagine que ce serait très fréquent. On dirait que ce devrait être un produit spécifique au serveur d'applications car il n'y a pas de spécification Java pour cela. Faites-moi savoir si vous entendez quoi que ce soit. – jpredham