2011-05-26 10 views
5

¿Hay alguna propiedad de resorte para la pereza inicial de todos los frijoles que cargan cargas de marco?Armazón de resorte predeterminado-perezoso-init todos los frijoles

que sé de estas propiedades

- lazy-init="true" 
- default-lazy-init="true" 

sin embargo hay varios archivos XML de configuración de la primavera y algunos están empaquetados dentro de tarro así que no tienen la libertad de cambiar ni <frijol> ni <granos> etiqueta.

¿Alguna otra forma de abordar esto a través de la configuración? o programáticamente?

+2

Realmente me gustaría poder hacer esto. Estamos autocableando muchos frijoles, por lo que se necesitan entre 15 y 20 segundos para crear una instancia previa de todos ellos. Me encantaría cambiar esto en mi máquina de desarrollo para mejorar el tiempo de inicio, pero mantenerlo igual en el servidor de producción. – theblang

Respuesta

2

A falta de extender el cargador de frijoles Spring, ninguno que yo sepa.

2

También puede usar la anotación @Lazy, pero es la misma que mencionó anteriormente.

0

Según doc java esto debería funcionar (aunque no se ve bien)

if (context.getBeanFactory() instanceof DefaultListableBeanFactory) 
    { 
     ((DefaultListableBeanFactory) context.getBeanFactory()).setAllowEagerClassLoading(false); 
    } 
0

He implementado esto en mi compañía, tuvo que ampliar algunas clases de primavera duro. No fue fácil, pero ganamos unos 20 segundos en cada arranque de Tomcat. Desafortunadamente, para las cláusulas de privacidad, no puedo mostrar el código, pero eche un vistazo a las clases ClassPathBeanDefinitionScanner, DefaultBeanDefinitionDocumentReader, ContextNamespaceHandler y ComponentScanBeanDefinitionParser.

+0

Bueno, es algo muy similar a esto: http://batmat.net/blog/post/2008/01/13/How-to-load-a-XML-Spring-context-lazily-by-default, pero yo hizo también para frijoles anotados y frijoles importados del primer xml –

Cuestiones relacionadas