2011-01-19 10 views
9

He heredado dos bases de código bastante triviales que usan la primavera para configurar las aplicaciones. Ahora necesito reconfigurar las aplicaciones. Pero muchas de las configuraciones se proporcionan a través del autoenvío, por lo que es casi imposible descubrir cuál es la configuración real.Cómo refactorizar una base de código que utiliza autovío de resorte

Los proyectos son de tamaño moderado, algunos módulos maven de 20 ish por proyecto, incluidos los módulos de prueba de integración y tal. La mayoría de los módulos definen algunos contextos de aplicación para varios propósitos, que contienen uno o dos archivos de configuración de resortes locales junto con uno o dos de los módulos centrales de los que depende. El resultado es una miríada de configuraciones, y no puedo alterar un nombre de clase o variable (o método setter) sin arriesgar la ruptura de dependencias en algún módulo ascendente o descendente, incluso si tal dependencia no está visible en ninguna parte del proyecto.

¿Cómo trabajo efectivamente con las dependencias de autocableado en primavera?

¿Alguien, tal vez alguien que realmente le gusta el autoenvío, brinda alguna idea de cómo se trabaja con ellos de manera efectiva?

(I también heredó un pequeño proyecto que combina archivos XML, autowiring y configuración de anotación impulsada, por lo que las relaciones de dependencia completamente intratable, pero voy a guardar esas anotaciones para una pregunta separada más adelante)

+0

se puede activar el registro de la primavera y obtener pistas sobre lo que los granos se instanciar cuando procesa los archivos XML de contexto de aplicación? –

+0

Supongo que la cantidad total de diferentes contextos de aplicación en un proyecto es como 50 o más. Algunos incluso se usan solo dentro de dispositivos fijos (en un proceso generado por un proceso engendrado ...) y algunos solo dentro de aplicaciones web. Sin duda es posible, pero tomaría todo el día una única dependencia. Construir todos los módulos y ejecutar todas las pruebas de requisitos lleva al menos una hora. Con todas las dependencias declaradas en xml (no es que me guste xml, solo es menos malo que las alternativas ...) lleva como máximo 2 minutos rastrear todos los usos de un solo método o clase. – eirikma

+0

para el caso, podría escribir código para analizar los archivos de registro de primavera y crear una aplicación-contexto.xml a partir de eso. eso suena como que casi podría ser útil. –

Respuesta

0

Qué son IDE estás usando? Spring STS (un IDE basado en Eclipse) tiene muchas herramientas para trabajar con las anotaciones de Spring y el autocableado, así como un buen conjunto de herramientas de refactorización.

+0

Uso IntelliJ ultimate 10. Tiene el mejor soporte de resorte que conozco, pero aún no lo detecta si cambiar el nombre de un método setter rompería una relación de autoenlace por nombre. – eirikma

+0

Cuanto más lo uso, más odio este mecanismo de configuración por coincidencia – eirikma

Cuestiones relacionadas