Accueil > Java EE > Retour sur la soirée Spring Data au Spring User Group

Retour sur la soirée Spring Data au Spring User Group

 Logo du Spring User Group

 

Jeudi 6 juin, une soirée Spring User Group nous a été proposée dans les locaux de la société Zenika. Les sujets suivants ont été abordés :

– Profiles Spring, par Mathieu Parisot (twitter)
– Mise en place de WebServices Restful via Spring Roo, par Mehdi Ben Haj Abbes (twitter)
– Présentation de Spring Data, par Oliver Gierke (twitter)

1 – Profiles Spring par Mathieu Parisot

Mathieu Parisot nous a montré un problème qu’il a rencontré dans son travail, et qu’il a résolu grâce aux Profiles Spring.

En environnement de production, un serveur d’authentification est mis en place et filtre les requêtes avant d’atteindre le serveur applicatif.

Or en développement, le serveur d’authentification n’est pas mis en place, pour des besoins de simplicité.

Pour supporter les deux cas de figure il faut donc deux contrôleurs qui mappent sur une même URL : l’un va interroger le serveur d’authentification (PROD), et l’autre directement le serveur applicatif (DEV).

Or, il est impossible en Spring MVC d’avoir deux contrôleurs qui mappent sur une même URL.

Les profiles Spring viennent à notre rescousse ! En effet, il suffit d’ajouter l’annotation @Profile (<environnement>) en complément de l’annotation @Controller, tout simplement. Il devient ainsi possible d’avoir deux contrôleurs différents mappant sur une même URL.

Mathieu nous a aussi naturellement montré comment lancer un environnement spécifique.

Celui-ci peut être passé en paramètre de la JVM, mais il peut arriver d’être dans l’impossibilité d’accéder à l’exécutable pour des raisons de sécurité. Dans ce cas, on peut passer par  une méthode plus élégante via une classe spécifique et des un fichier de configuration.

Ce fut une présentation simple et claire, qui m’a permis de découvrir une fonctionnalité qui pourrait s’avérer bien utile dans mes futures missions où Spring est mis en place!

 

2 – Mise en place de WebServices Restful via Spring Roo par  Mehdi Ben Haj Abbes  

                    

C’est au tour d’un Novédien d’intervenir : Mehdi nous a montré dans un laps de temps très court (Eric Siber a même chronométré, 14 minutes!) comment il a mis en place une application Spring MVC complète, et sans écrire une ligne de code !

Il a ensuite exposé les services via Spring MVC en mode Restful dans ce même intervalle de temps.

Spring Roo permet de créer en ligne de commande directement le code source du projet.

Par exemple, pour créer une application Spring MVC :

project --topLevelPackage com.sugf

Ainsi que la mise en place d’une base MongoDb:

mongo setup --databaseName sugf

Tout le code est généré automatiquement grâce à Spring Roo, Mehdi n’a pas eu à écrire une seule ligne de code!

De plus, la tabulation permet de connaitre les différents choix possibles (création ou modification d’entités, de champs, etc.) ce qui peut s’avérer fort utile.

La génération du code et le lien entre les couches MVC (on parle de mécanisme de scaffolding) sont rendus possibles par l’utilisation d’annotations spécifiques à Spring Roo combinées à la programmation par aspect. Spring Roo va générer les services de la couche métier et les opérations CRUD (Create, Update, Delete), ainsi que le contrôleur, et la vue, tout ceci automatiquement !

La vue proposée permet ainsi l’ajout, la modification et la suppression au travers d’une interface élégante.

Ensuite, Mehdi a montré comment il a exposé les services en Restful de manière aisée grâce aux annotations Spring MVC 3.2.

Etant donné l’aspect très condensé de la présentation (parler de Spring Roo, Spring MVC, et  WebServices Restful en 14 minutes!), de nombreuses questions furent posées à Mehdi, et qui nous ont permis de mieux comprendre comment fonctionne Spring Roo.

Cette présentation m’a permis de me rendre compte en quoi la mise en place de Spring Roo permet de gagner du temps pour créer une application Web simple.

Après, il faut voir à l’usage si les spécificités inhérentes à chaque projet sont aussi faciles à mettre en place.

 

3 – Spring Data par Oliver Gierke

 

Oliver Gierke, qui est un speaker international et lead developper Spring Data, nous a présenté cette technologie à travers les points suivants :

  • Origine des bases NoSql

En introduction, Oliver Gierke nous a présenté l’émergence des bases non relationnelles à travers MongoDb et Neo4J. Il nous a présenté des exemples de code.

Il nous a ainsi montré en quoi Spring Data, en plus de simplifier les accès via JPA aux bases relationnelles, était aussi capable de traiter le cas des bases non relationnelles.

  • Mapping des entités

Grâce à Spring Data, on peut désormais annoter les entités à la manière de JPA ou d’Hibernate. Par exemple,

@Document
class Person{...
  • Interface pour requêtage

Oliver Gierke nous a montré en quoi Spring Data permet de requêter de manière aisée, grâce à l’interface Repository. Le principe de Convention over Configuration est clairement appliqué ici dans la mesure où la requête qu’on souhaite faire est simplement exprimée par le nom de la méthode.

De plus, l’environnement de développement STS permet l’auto-complétion et la vérification syntaxique pour les méthodes de requêtage.

Conclusion de la soirée : nous avons pu appréhender différentes facettes de l’environnement Spring ce qui a été enrichissant.

 

Quelques liens pour approfondir :

Spring User Group France : https://groups.google.com/forum/?hl=fr&fromgroups#!forum/sugfr

Spring Roo : http://www.springsource.org/spring-roo

Spring Data : http://www.springsource.org/spring-data

  1. Pas encore de commentaire
  1. Pas encore de trackbacks


6 × cinq =