2009-07-27 25 views
5

Me estoy cansando de todo esto código repetitivo aburrido para analizar la configuración de aplicación como las conexiones de bases de datos, directorios de trabajo, los puntos finales de API y otras cosas. Spring IoC se ve bien, pero esto obligará al usuario de mi aplicación a modificar el archivo XML solo para editar la URL de la base de datos, etc. Esto también podría estar muy distribuido en el archivo XML donde todos mis otros oclusos de cableado.configuración de la aplicación (primavera?)

¿Cuál es la mejor técnica para permitir a los usuarios finales configurar servicios (que no se ejecutan dentro de un servidor de aplicaciones)? ¿Qué van ustedes, chicos?

Respuesta

10

Use Spring, que es un cableado explícito en XML, auto-cableado o alguna combinación de los mismos, para definir la configuración "constante" y luego externalizar el resto en los archivos de propiedades. Las credenciales de la base de datos son un ejemplo común de esto.

Consulte Spring and Ibatis Tutorial para obtener un ejemplo de referencia de esto. Versión corta:

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
    <property name="location" value="classpath:database.properties"/> 
</bean> 

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> 
    <property name="driverClassName" value="${database.class}"/> 
    <property name="url" value="${database.url}"/> 
    <property name="username" value="${database.username}"/> 
    <property name="password" value="${database.password}"/> 
</bean> 

con database.properties (en la ruta de clase):

database.username=scratch 
database.password=scratch 
database.class=oracle.jdbc.OracleDriver 
database.url=jdbc:oracle:thin:@localhost:1521:XE 
2

No olvide que puede usar los archivos XML de Spring para compilar su aplicación, pero use los archivos de propiedades para proporcionar (por ejemplo) URL de base de datos, etc. dentro de estas configuraciones.

Esto funciona muy bien cuando tiene un conjunto de archivos XML para compilar su aplicación, y luego proporciona un conjunto diferente de archivos de propiedades dependiendo de si está ejecutando una versión de desarrollo, prueba o producción de la aplicación.

5

puede almacenar la configuración de la aplicación en un archivo de propiedades y usar PropertyPlaceholderConfigurer para cargar esas propiedades.

Así, en su archivo applicationContext, que puede tener esta:

<bean id="dataSource" class="com.x.y.z.DataSource"> 
    <property name="url" value="${dataSource.url}" /> 
</bean> 

La propiedad dataSource.url obtendrá cargado desde el archivo de propiedades.

Esto es lo que yo uso en una aplicación que estoy trabajando, y que hace que la configuración mucho más fácil!

0

Usted puede modularizar los archivos de configuración de la primavera. Por lo tanto, puede tener un archivo XML para la conexión de la base de datos, que luego se incluye (se importa) en un archivo de configuración central de Spring. Si el usuario debe poder modificar cosas, puede crear los archivos XML a partir de una plantilla y (re) cargar el contexto de la aplicación.

2

Todavía puede usar Spring para conectar sus clases con IOC (en XML, configuración de Java, autoencendido, lo que sea) pero aún usar archivos de propiedades para contener valores que pueden cambiar en función de la implementación, como las conexiones de bases de datos.

Mira PropertyPlaceholderConfigurer. Aquí hay una publicación de blog con un example de cómo lo usarías.

Cuestiones relacionadas