2010-02-10 9 views
6

Me gustaría utilizar Spring con la configuración de Java, pero casi todos los ejemplos están escritos en XML y no sé cómo traducirlos a Java. Mira a estos examples from Spring Security 3:Traducir la configuración de Spring XML a la configuración de Java

<http auto-config='true'> 
    <intercept-url pattern="/**" access="ROLE_USER" /> 
</http> 

<authentication-manager> 
    <authentication-provider> 
     <user-service> 
     <user name="jimi" password="jimispassword" authorities="ROLE_USER, ROLE_ADMIN" /> 
     <user name="bob" password="bobspassword" authorities="ROLE_USER" /> 
     </user-service> 
    </authentication-provider> 
    </authentication-manager> 

    <password-encoder hash="sha"> 
    <salt-source user-property="username"/> 
    </password-encoder> 

cómo podría esto traducido a config Java? O, de manera más general, ¿cómo puedo traducir Spring XML config a Java? Hay una pequeña sección sobre Java confing in the Spring reference pero no es tan útil.

+0

La versión actual de Spring Security tiene un soporte decente para Java Config, ver http://docs.spring.io/spring-security/site/docs/3.2.6.RELEASE/reference/htmlsingle/#jc –

Respuesta

1

No se pueden traducir configuraciones XML con espacios de nombres personalizados (como http://www.springframework.org/schema/security). Sin embargo, puede mezclar configuraciones XML con Java utilizando @ImportResource

+0

Gracias. Parece que Spring siempre seguirá siendo un marco XML :-( – deamon

2

Esto es probablemente más simple de lo que cree. Spring no está haciendo magia. El analizador de configuración XML solo crea definiciones de bean y las registra con la fábrica de bean. Puede hacer lo mismo creando un DefaultListableBeanFactory y registrando sus definiciones de bean con él. El principal error aquí es pensar "caramba, voy a crear los granos y ponerlos en el contexto de la aplicación". Este enfoque no funciona porque Spring crea frijoles flojamente y la API se basa en la idea de una fábrica a la que se llama cuando es necesario, no a una fábrica que hace todo el trabajo al inicio.

Here is some example code. Tenga en cuenta que esta muestra necesita muchas más líneas de código, pero al definir sus propios métodos de ayuda, debería poder descomponerlo en algo que debería estar a la par con XML.

También consulte el source for the Spring unit tests para ver ejemplos.

Cuestiones relacionadas