2011-05-19 24 views
5

tengo Java Beans:Spring XML de beans existentes, ¿cómo?

package com.denisk.beans; 
... 
public class SomeBean { 
    private String someProperty; 
    private AnotherBean anotherBean; 
    ... 
} 

public class AnotherBean { 
    private String anotherProperty; 
    .... 
} 

Quiero generar un talón de configuración del resorte XML para estos granos, algo así como

<beans> 
    <bean id="someBean"> 
     <property name="someProperty" value="sldfjslkdfjas;lfj"/> 
     <property name="anotherBean" ref="anotherBean"/> 
    </bean> 
    <bean id="anotherBean"> 
     <property name="anotherProperty" value="klj;df;ksdjflsjkd;lfj"/> 
    </bean> 
</beans> 

quiero que esto se haga uso de alguna herramienta, lo que haría aceptar una ruta a mis granos como una entrada, así:

[email protected]:~$ generateSpringXml -p "/home/denisk/myProject/src/main/java/com/denisk/beans" -output "/home/denisk/mySpringConfig.xml" 

No debería ser un gran problema, pero no puedo ir ojea algo así.

Gracias

+1

Eso es una especie de tarea interesante, pero me pregunto cuál es el punto. Si tiene una aplicación que no usa DI, aún tendrá que codificar mucho para cambiarla, y un contexto de aplicación xml no resolverá nada. ¿Puedes decir cuál es la intención exactamente? – abalogh

+0

Quiero crear pruebas de integración. Quiero que los datos se llenen para la primavera. Guardaría los datos en la base de datos y usaría los mismos ajustes de primavera para verificar que se guardaron correctamente. El problema es que hay dos o trescientas entidades, y hay mucho trabajo para escribir las configuraciones de primavera para ellas a mano. Me gustaría generar stub y editarlo después, eso me ahorraría dos o tres días de trabajo. –

Respuesta

4

mira esto:

https://github.com/mangstadt/Spring-Application-Context-Generator

Esto llevará una lista de clases de Java y generar las definiciones de frijol XML para ellos. Genera un elemento <bean /> para cada clase pública, un elemento <property /> para cada campo público y método setter, y una lista de elementos <constructor-arg /> si solo hay un constructor y ese constructor no es el constructor predeterminado.

Ejemplo:

java com.mangst.appcontext.ApplicationContextGenerator --source=/home/denisk/myProject/src/main/java --package=com.denisk.beans 

Si intenta esto, que me haga saber si hay algún problema para que pueda hacer mejoras.

+0

¡Guau, funciona! Y lo has escrito por ti mismo: ¡eres un hombre rockero! ¿Se puede ajustar un poco para ir recursivamente a través de paquetes? –

+1

@denisk Sí, vale, prueba ahora con la bandera '--recurse'. – Michael

+0

¡Eso es genial, gracias! Tu herramienta es muy clara. ¿Has considerado agregar estructuras hormiga o maven para eso? –

Cuestiones relacionadas