5

¿Cuál es la mejor manera de administrar conjuntos de propiedades para aplicar a EJB, y poder variarlos fácilmente entre máquinas/entornos (por ejemplo, DEV, TEST, PROD)? Por ejemplo, hay una forma de configurar sus propiedades EJB en el Servidor de aplicaciones (lo que garantiza que puede variarlas por máquina/entorno).J2EE Application/Bean configuration ¿Mejores prácticas?

Específicamente:

1) I tienen un EJB Singleton que necesita ciertas propiedades establecidas (medio ambiente) específico. ¿Hay anotaciones que se utilizan para indicar al contenedor EJB dónde buscar esas propiedades y las aplicará automáticamente al bean?

2) ¿Cuál es la mejor forma de administrar diferentes conjuntos de propiedades, es decir, dev, test, prod, para que la aplicación J2EE sea portátil entre servidores y pueda administrar sin problemas las propiedades específicas de cada servidor?

Si hay algún enlace de documentación bueno, avíseme. Busqué en Google y no vi nada directamente en los puntos anteriores.

Respuesta

2

Utilizo una clase auxiliar única "PropertiesHelper" que tiene un miembro Properties y lee desde un archivo de configuración xml en el primer intento de acceso a la propiedad. El asistente encapsula todo el conjunto de configuraciones y evita que se lean desde el disco más de una vez.

La ubicación del archivo se especifica en mis opta java y leer en PropertiesHelper por el uso de System.getProperty()

cuanto a propiedades del sistema anotaciones, no creo Java soporta de forma nativa, pero si usted es tan Si lo desea, puede consultar algunos marcos de Inyección AOP/Inyección de Dependencia como Google Guice que son mejores en este "corte transversal".

+0

Gracias por la respuesta. Esperaba algo en el nivel del servidor de aplicaciones, similar a cómo configura el grupo de bases de datos y las propiedades de conexión que se usan para conectarse al marco de persistencia del servidor de aplicaciones. Es un diseño bonito y ordenado, porque la configuración está vinculada a la instancia del servidor de aplicaciones, que generalmente está vinculada a un entorno específico (por ejemplo, DEV, TEST, PROD). –

+0

No sé nada de eso, aunque imagino que se usaría mucho. Parece que debería ser un producto específico del servidor de aplicaciones, ya que no hay especificaciones de Java para él. Avísame si escuchas algo. – jpredham