7 votes

Traduire la configuration XML de Spring en configuration Java

J'aimerais utiliser Spring avec une configuration Java, mais presque tous les exemples sont écrits en XML et je ne sais pas comment les traduire en Java. Regardez ces exemples de Spring Security 3 :

 <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>

Comment cela pourrait-il se traduire en configuration Java ? Ou, plus généralement, comment traduire la configuration de Spring XML en Java ? Il y a une petite section sur Confing Java dans la référence Spring mais ce n'est pas très utile.

3voto

Teja Kantamneni Points 9112

Suivez les JavaConfig projet documentation .

2voto

Aaron Digulla Points 143830

C'est probablement plus simple que vous ne le pensez. Spring ne fait pas de magie. Le parseur de configuration XML crée simplement des définitions de bean et les enregistre auprès de la fabrique de bean. Vous pouvez faire la même chose en créant un DefaultListableBeanFactory et enregistrer vos définitions de haricots avec elle. L'erreur principale ici est de penser "bon sang, je vais juste créer les beans et les mettre dans le contexte de l'application". Cette approche ne fonctionne pas parce que Spring crée des beans paresseusement et que l'API est construite autour de l'idée d'une fabrique qui est appelée lorsque cela est nécessaire, et non d'une fabrique qui fait tout le travail au démarrage.

Voici un exemple de code . Notez que cet exemple nécessite beaucoup plus de lignes de code, mais en définissant vos propres méthodes d'aide, vous devriez être en mesure de le réduire à quelque chose qui devrait être comparable à XML.

Vérifiez également le source pour les tests unitaires de Spring par exemple.

1voto

axtavt Points 126632

Vous ne pouvez pas traduire les configurations XML avec des espaces de noms personnalisés (tels que http://www.springframework.org/schema/security ). Toutefois, vous pouvez mélanger les configurations XML avec celles basées sur Java en utilisant @ImportResource

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X