Archive

Articles taggués ‘spring’

La pagination facile avec Spring 3.x et jQuery.


Introduction

Qu’est ce que je veux faire ?

Mon objectif principal est la présentation de résultats de recherche sous forme de tableau avec gestion de la pagination. Du grand classique!

Quelles sont mes contraintes ?

  • Pour des raisons de performance et de bon sens, je veux que la pagination soit gérée côté serveur pour éviter de charger entièrement tous les résultats;
  • J’aimerais que la navigation entre les différentes pages de recherche soit fluide;
  • Enfin, j’aimerais en tant que développeur que ça marche et que ça soit relativement beau avec le minimum d’effort.

Comment je vais m’y prendre ?

Comme j’ai envie que ça soit beau sans faire trop d’effort, je pense très rapidement à jQuery.  Après une rapide recherche, j’opte pour un plugin très populaire de présentation de données tabulaires : dataTable. En effet, celui-ci permet en très peu de configuration de gérer la “présentation des résultats paginés” tout en déléguant la gestion de la pagination  au serveur : bingo!

Par contre, si j’opte pour cette solution les résultats à afficher devront être récupérés grâce à des requêtes AJAX. D’un côté ça m’arrange car ça me permet de coller à ma deuxième contrainte, qui était de rendre la navigation plus fluide;  mais d’un autre côté, ça m’embête un peu parce que je n’ai pas envie de rentrer dans les problématiques techniques d’AJAX.

Je fais donc ma petite enquête et me rends compte que Spring 3.x apporte un support intéressant pour AJAX censé faciliter la vie du développeur. Spring et jQuery, je signe sans hésitation et me lance dans l’aventure.
Lire la suite…

Share

Introduction à Spring-Batch

Contexte

Dans le cadre de la refonte d’une application extranet chez un client, j’ai été plus particulièrement chargé du développement des batchs. Les batchs à développer devaient tous réaliser des tâches similaires :

  • transferts FTP de fichiers (upload et download)
  • traitements sur les fichiers ainsi obtenus (redimensionnement d’images JPEG, parsing de fichiers XML)
  • enregistrement des méta-données sur les fichiers ainsi manipulés en base de données.

Dans l’ancienne version de l’application, les batchs étaient développés grâce à un framework interne (vieillissant). J’ai donc recherché des frameworks de batch permettant de remplacer l’ancienne architecture tout en s’intégrant avec les composants utilisés dans la partie web de l’application (développée en Spring et Struts 1).

Choix du framework

Dans un souci de facilitation de la maintenance, le choix de Spring-batch s’est rapidement imposé. En effet, la plupart des composants (DAOs, services) nécessaires pour réaliser les tâches ci-dessus avaient déjà été développés sous la forme beans Spring utilisés par l’application web ; la principale tâche restant à accomplir étant le câblage de ces différents composants. Il était donc plus efficace et plus maintenable de réutiliser les composants existants et de les injecter dans les batchs via IOC.

Le développement a donc consisté à créer les classes composant la partie « front » des batchs et à gérer leur enchaînement.

Le but de cet article n’est pas de décrire de manière détaillée le fonctionnement de Spring-batch. Il s’agit plutôt de réaliser par étapes un petit tutoriel, la documentation officielle de Spring étant très complète mais peu adaptée à une prise en main rapide : http://static.springsource.org/spring-batch/reference/html-single/index.html

Ce tutoriel traitera surtout du développement de tâches pour lesquels un composant de Spring-batch n’existe pas déjà. En effet, ce framework propose des classes permettant de mettre en place rapidement (et généralement en ne manipulant que les fichiers de configuration Spring) des tâches récurrentes dans le domaine des batchs :

  • parsing de fichiers XML pour insertion dans une base de données ;
  • export de données d’une base vers un fichier plat ;

Des exemples fonctionnels pour ces tâches sont disponibles sur le web, notamment dans la documentation officielle ; en revanche, il n’existe que très peu d’exemples de la mise en place de tâches “spécifiques” : dans le cas qui nous intéresse, ces tâches étaient par exemple l’upload/download de fichiers via FTP et de manipulation sur des fichiers images (en tant que fichiers, et donc sans lire leur contenu comme c’est le cas avec des fichiers CSV ou XML plus fréquemment manipulés par les batchs).

Lire la suite…

Share
Categories: Frameworks Tags: , ,

Authentification (in)digest(e) avec Spring et des mots de passe chiffrés

Dans mon projet actuel, j’ai mis en place un ensemble de web services basés sur Rest. On a décidé de les sécuriser avec le protocole HTTP Digest fonctionnant sur la même base que HTTP Basic. L’idée était d’utiliser un processus qui permette de ne pas faire circuler le mot de passe en clair au moment de la connexion.

Lire la suite…

Share

Retour d’expérience : 2 ans avec Spring-Webflow

Il y a deux ans et demi, lorsque nous avons commencé à travailler sur Kwixo, il a fallu choisir un (des) framework(s) pour gérer la partie MVC. Le cahier des charges était énorme, et Spring MVC paraissait un peu juste pour gérer les enchaînements de pages demandés par la MOA.

Par exemple, le formulaire d’inscription est réparti sur plusieurs pages et implique l’envoi d’un code via SMS sur le téléphone (qui peut-être ignoré). Bref, une cinématique complexe.

Lire la suite…

Share

Construire sa propre plateforme de services

Je vais vous décrire une petite plateforme de services que j’ai eu l’occasion de concevoir et de réaliser. Lire la suite…

Share