Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
issue76:tutoriel_-_spring_integration [2014/02/11 14:13] – [2] auntiee | issue76:tutoriel_-_spring_integration [2014/02/11 14:50] (Version actuelle) – [8] auntiee |
---|
Nous allons définir une partie du fichier xml de configuration (page suivante, en haut à gauche), la partie serveur : http://pastebin.com/6AHQWPse | Nous allons définir une partie du fichier xml de configuration (page suivante, en haut à gauche), la partie serveur : http://pastebin.com/6AHQWPse |
| |
Les choses importantes sont : une usine (tcp-connection-factory) crée un serveur TCP en utilisant un tableau sérialiseur d'une longueur d'un octet. Un sérialiseur est nécessaire pour « emballer » notre message d'une façon, de l'encoder afin de le transmettre par un câble. D'autre part, un désérialiseur est nécessaire pour « déballer » notre message, le décoder. Spring Integration possède deux usines : une pour le client et une autre pour le serveur. La différence est le type [serveur ou client]. Un port écoute les messages entrants. Une adresse IP n'est pas mentionnée ici, car le serveur s'exécute en tant que localhost (serveur local). | Les choses importantes sont : une usine (tcp-connection-factory) crée un serveur TCP en utilisant un tableau sérialiseur d'une longueur d'un octet. Un sérialiseur est nécessaire pour « emballer » notre message, c-à-d l'encoder afin de le transmettre par un câble. D'autre part, un désérialiseur est nécessaire pour « déballer » notre message, autrement dit, le décoder. Spring Integration possède deux usines : une pour le client et l'autre pour le serveur. La différence est le type [serveur ou client]. Un port écoute les messages entrants. Une adresse IP n'est pas mentionnée ici, car le serveur s'exécute en tant que localhost (serveur local). |
| |
Nous avons également défini deux canaux : serverIn (pour les messages entrants) et serverOut (pour les messages sortants). Pour que notre serveur puisse envoyer et recevoir des messages, nous définissons des adaptateurs entrants et sortants qui sont associés à l'usine et aux canaux. Dans notre cas, ils définissent les nœuds d'échange. Donc, quand un message arrive, quelque chose doit s'en occuper. Cette responsabilité exige un service, à savoir le service d'envoi de fichier. S'il accepte un message, il envoie un fichier en tâche de fond, ligne par ligne, vers le client. En gros, quand un serveur démarre, il écoute les messages entrants. Cependant, seuls des messages spécifiques seront acceptés et, lorsqu'il sont acceptés, le serveur envoie ligne par ligne le fichier. Si une erreur se produit, elle est acheminée vers le canal d'erreur. On utilise pour cela un intercepteur. | Nous avons également défini deux canaux : serverIn (pour les messages entrants) et serverOut (pour les messages sortants). Pour que notre serveur puisse envoyer et recevoir des messages, nous définissons des adaptateurs entrants et sortants qui sont associés à l'usine et aux canaux. Dans notre cas, ils définissent les nœuds d'échange. Donc, quand un message arrive, quelque chose doit s'en occuper. Cette responsabilité exige un service, à savoir le service d'envoi de fichier. S'il accepte un message, il envoie un fichier en tâche de fond, ligne par ligne, vers le client. En gros, quand un serveur démarre, il écoute les messages entrants. Cependant, seuls des messages spécifiques seront acceptés et, lorsqu'il sont acceptés, le serveur envoie un fichier ligne par ligne. Si une erreur se produit, elle est acheminée vers le canal d'erreur. On utilise pour cela un intercepteur. |
| |
====== 4 ====== | ====== 4 ====== |
| |
Je voudrais dire quelques mots sur le cycle de vie du SI. Le framework Spring a deux paquets « principaux » : org.springframework.beans et org.springframework.context | Je voudrais dire quelques mots sur le cycle de vie du SI. Le framework Spring a deux paquets « principaux » : org.springframework.beans et org.springframework.context |
qui construisent le cœur de l'utilitaire d'injection de dépendances du composant. L'interface org.springframework.beans.factory.BeanFactory fournit des méthodes de cycle de vie de base (démarrage et arrêt) pour l'initialisation et la destruction du bean. org.springframework.context.ApplicationContext offre une intégration AOP, la gestion des ressources du message, et même plus. | qui construisent l'important utilitaire d'injection de dépendances du composant. L'interface org.springframework.beans.factory.BeanFactory fournit des méthodes de base de cycle de vie (démarrage et arrêt) pour l'initialisation et la destruction du bean. org.springframework.context.ApplicationContext offre une intégration AOP, la gestion des ressources du message et plus encore. |
| |
Notre serveur est prêt... Je veux dire, tout à fait prêt. Pour exécuter l'exemple, suivez les étapes ci-dessous : | Notre serveur est prêt... Je veux dire, tout à fait prêt. Pour exécuter l'exemple, suivez les étapes ci-dessous : |
Le code source peut être trouvé ici : http://pastebin.com/6PMpWTfX | Le code source peut être trouvé ici : http://pastebin.com/6PMpWTfX |
| |
Nous définissons également un service d'envoi de fichier. Ceci est illustré à la page suivante, en haut à gauche. Le code est là: http://pastebin.com/icHRdQS3 | Nous définissons également un service d'envoi de fichier. Ceci est illustré à la page suivante, en haut à gauche. Le code est ici : http://pastebin.com/icHRdQS3 |
| |
Ensuite, voici un exécuteur du boulot. Ce code est indiqué sur la page suivante, en bas à gauche. Le code peut être récupéré ici : http://pastebin.com/LZRdZ3Tg | Ensuite, voici un exécuteur du boulot. Ce code-là est montré sur la page suivante, en bas à gauche. Le code peut être récupéré ici : http://pastebin.com/LZRdZ3Tg |
| |
Enfin, pour le serveur, nous écrivons un gestionnaire d'erreur, qui enregistre les erreurs que l'on voit ci-dessus. Le code est là : http://pastebin.com/2EQvbVR8 | Enfin, pour le serveur, nous écrivons un gestionnaire d'erreur, qui enregistre les erreurs et que l'on voit ci-dessus. Le code est là : http://pastebin.com/2EQvbVR8 |
| |
À ce stade, nous en avons terminé avec notre serveur. | À ce stade, nous en avons terminé avec notre serveur. |
} | } |
| |
Et le dernier est un intercepteur, qui informera votre application sur : i. Message envoyé; ii. Une connexion est fermée; iii. Une nouvelle connexion est ajoutée. | Et le dernier est un intercepteur, qui informera votre application sur : i. Message envoyé ; ii. Une connexion est fermée ; iii. Une nouvelle connexion est ajoutée. |
| |
C'est tout ! | C'est tout ! |
| |
Pour jouer avec le code, voir ici : http://www.4shared.com/zip/eF4q7l0k/spring_integration_example.html. | Pour vous amuser avec le code, voir ici : http://www.4shared.com/zip/eF4q7l0k/spring_integration_example.html. |
| |
====== 8 ====== | ====== 8 ====== |
| |
Inconvénients : | Inconvénients : |
• cela prend du temps pour apprendre et comprendre comment l'utiliser ; | • il faut du temps pour apprendre et comprendre comment l'utiliser ; |
• si vous avez des problèmes, il est parfois difficile de déboguer. | • si vous avez des problèmes, il est parfois difficile de déboguer. |
| |