Diferencia entre revisiones de «Buenas Practicas De Configuracion De Spring»

De Dos Ideas.
Saltar a: navegación, buscar
Línea 18: Línea 18:
  
 
Esta es la misma filosofia que utilizamo con el código Java. Usar una nomenclatura clara, descriptiva y consistente en todo el proyecto es de gran ayuda para que los desarrolladores entiendan la configuración XML. Para el id de los Beans, por ejemplo, se puede seguir la convención de atributos de una clase Java. El Bean ID de una instancia de ''InvasorDAO'' podria ser ''InvasorDAO''. En proyectos grandes, se puede agregar el nombre del paquete como prefijo del Bean ID.
 
Esta es la misma filosofia que utilizamo con el código Java. Usar una nomenclatura clara, descriptiva y consistente en todo el proyecto es de gran ayuda para que los desarrolladores entiendan la configuración XML. Para el id de los Beans, por ejemplo, se puede seguir la convención de atributos de una clase Java. El Bean ID de una instancia de ''InvasorDAO'' podria ser ''InvasorDAO''. En proyectos grandes, se puede agregar el nombre del paquete como prefijo del Bean ID.
 +
 +
== Usar formas abreviadas de configuración ==
 +
 +
Las formas abreviadas son mas faciles de leer, dado que transforma el valor de los elementos hijos en atributos del elemento padre. Por ejemplo:
 +
 +
<code lang="xml">
 +
<bean id="invasorService"
 +
      class="com.dosideas.spring.InvasorService">
 +
      <property name="nombreInvasor">
 +
          <value>Zim</value>
 +
      </property>
 +
      <constructor-arg>
 +
          <ref bean="invasorDAO">
 +
      </constructor-arg>
 +
</bean>
 +
</code>
 +
 +
puede ser reescrito de forma abreviada:
 +
 +
<code lang="xml">
 +
<bean id="InvasorService"
 +
      class="com.dosideas.spring.InvasorService">
 +
        <property name="nombreInvasor" value="Zim"/>
 +
        <constructor-arg ref="invasorDAO"/>
 +
</bean>
 +
</code>
 +
 +
Este feature esta disponible desde la versión 1.2 de Spring. Vale aclarar que no existe abreviacion para el elemento <ref local="...">.
 +
 +
Esta forma de abreviar nuestra configuración no solo nos evita tipear, tambien deja al archivo XML mucho mas claro.

Revisión del 11:38 25 feb 2009

Aqui hay una recopilacion de buenas practicas a la hora de configurar Spring, las mismas son traducciones de: Twelve Best Practices for Spring XML

Evitar el uso de autowiring

Spring puede hacer autowiring de dependencias haciendo instropeccion de las clases, logrando de esta manera evitar que uno tenga que especificar las propiedades del bean o los argumentos de los constructores. Se puede hacer autowiring de las propiedades de los beans ya sea por nombre de propiedad o por tipo. En el caso de los constructores, solo se permite por tipo. Tambien se puede especificar el modo "autodetect autoriwiring", que deja que Spring elija el mecanismo mas apropiado. Miremos el siguiente código:

<bean id="invasorService"

       class="com.dosideas.spring.InvasorService"
       autowire="byName"/>

Los nombres de las propiedades de la clase InvasorService son usadas para buscar instancias de beans en el contenedor. El uso de Autowiring nos salva de tipear mucho código. De todas formas, nunca deberiamos utilizar Autowiring en una aplicación real porque perjudicamos la legibilidad de nuestro archivo de configuración y la mantenibilidad del mismo. Parece una buena idea hacer que nuestros archivos XML de configuración sean pequeños, pero esto aumenta en gran medida la complejidad de comprensión de la solución.

Spring tambien nos permite mezclar las dos técnicas (Autowiring y no-autowiring), pero con esto solamente lograriamos hacer mucho mas confusa la configuración.

Usar convenciones de nomenclatura

Esta es la misma filosofia que utilizamo con el código Java. Usar una nomenclatura clara, descriptiva y consistente en todo el proyecto es de gran ayuda para que los desarrolladores entiendan la configuración XML. Para el id de los Beans, por ejemplo, se puede seguir la convención de atributos de una clase Java. El Bean ID de una instancia de InvasorDAO podria ser InvasorDAO. En proyectos grandes, se puede agregar el nombre del paquete como prefijo del Bean ID.

Usar formas abreviadas de configuración

Las formas abreviadas son mas faciles de leer, dado que transforma el valor de los elementos hijos en atributos del elemento padre. Por ejemplo:

<bean id="invasorService"

     class="com.dosideas.spring.InvasorService">
      <property name="nombreInvasor">
         <value>Zim</value>
      </property>
      <constructor-arg>
         <ref bean="invasorDAO">
      </constructor-arg>

</bean>

puede ser reescrito de forma abreviada:

<bean id="InvasorService"

     class="com.dosideas.spring.InvasorService">
       <property name="nombreInvasor" value="Zim"/>
       <constructor-arg ref="invasorDAO"/>

</bean>

Este feature esta disponible desde la versión 1.2 de Spring. Vale aclarar que no existe abreviacion para el elemento <ref local="...">.

Esta forma de abreviar nuestra configuración no solo nos evita tipear, tambien deja al archivo XML mucho mas claro.