2011-11-28 20 views
6

Para reducir el tiempo de inicio del servidor en el entorno de desarrollo, me gustaría cambiar el comportamiento predeterminado de Spring para inicializar de forma diferida los beans.Inicialización lenta de la primavera en el entorno de desarrollo

Sé que esto se puede hacer especificando default-lazy-init="true" en el nivel de los frijoles. Sin embargo, no me gustaría cambiar esta propiedad cada vez que obtengo los últimos archivos de configuración de SCM y los vuelvo a cambiar antes de volver a verificarlos.

¿Hay alguna otra forma de externalizar esta propiedad? ¿Como especificar una propiedad del sistema?

También traté de definir una propiedad en un archivo de propiedades específico del entorno y referirme a la propiedad en el elemento beans, pero no funcionó.

default-lazy-init="${default-lazy-init-value}" 

¿De cualquier otra forma esto se puede lograr fácilmente?

Respuesta

3

¿Qué tal llevar default-lazy-init en un archivo de propiedades externas y se lleva a la definición de frijol

XML

<bean id="propertyPlaceholderConfigurer" 
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
    <property name="locations"> 
    <list> 
     <value>classpath:system-env.properties</value> 
    </list> 
    </property> 
</bean> 

<bean id="bean1" class="com.Foo" lazy="${default-lazy-init}"/> 

propiedades del archivo (system-env.properties)

#set true in dev (if needed) 
default-lazy-init=true 
+0

esto va a funcionar. Sin embargo, esto me requeriría poner el atributo perezoso para todos mis beans. Esperaba que hubiera una manera más fácil. – PrasadB

Cuestiones relacionadas