La partie cliente de l'application se compose de deux fichiers : une implémentation cliente de l'interface RestSimpleService et un contexte Spring.
Voici l'implémentation de l'interface RestSimpleService partagée par le client et le serveur :
public class RestSimpleClientImpl
implements RestSimpleService
{
private RestTemplate restTemplate = null;
private String urlServeur = "";
public Client getClient(final String reference)
{
return getRestTemplate().getForObject(
getUrlServeur() + "/client/{reference}",
ClientImpl.class,
reference);
}
protected RestTemplate getRestTemplate()
{
return this.restTemplate;
}
public void setRestTemplate(final RestTemplate restTemplate)
{
this.restTemplate = restTemplate;
}
protected String getUrlServeur()
{
return this.urlServeur;
}
public void setUrlServeur(final String urlServeur)
{
this.urlServeur = urlServeur;
}
}
L'utilisation de RestTemplate
Voici les deux beans qui vont avec :
<bean id="restSimple.client" class="com.netapsys.restsimple.client.RestSimpleClientImpl"> <property name="restTemplate" ref="rest.template"/> <property name="urlServeur" value="http://localhost:8080/restsimple-serveur"/> </bean> <bean id="rest.template" class="org.springframework.web.client.RestTemplate"/>
Je vous laisse lire et compiler le code source lié à ce billet pour tester la simplicité du projet.
Quels sont à votre avis les forces et les faiblesses de cette approche ? Ce projet étant vraiment simpliste, ce principe d'architecture est-il utilisable dans un véritable projet industrielle ? Une première réponse par Jean-Baptiste ici.
Voici quelques liens utiles :
Commentaires