Archives de catégorie : spring

Partage de session avec spring-session

Un collègue m’a fait découvrir spring-session lors d’un échange sur la façon de stocker les sessions dans un tiers.

J’ai donc décidé de reprendre mon poc pour l’adapter à cette librairie.

La mise en place est assez simple. Il faut juste créer 2 classes.

1 pour la configuration (Config) et 1 pour que spring initialise mon application (Initializer). Dans une application existante la dernière classe n’est pas obligatoire. Il suffira de déclarer le bean config dans le fichier de context XML spring.

  • configuration:

Il suffit de placer l’annotation EnableRedisHttpSession et de déclarer un bean pour la connectionFactory. Par defaut JedisConnectionFactory se connecte sur la base redis en localhost. Dans mon cas, j’ai surchargé pour aller sur le host db (container redis)

Il faut supprimer aussi le fichier context.xml qui n’est plus nécessaire.
Il faut passer en servlet 3.0 pour que l’initialisation fonctionne.

et voilà, c’est tout.

On peut tester le tout avec les commandes:

 

  • Changements:

Par rapport au précédent article, le poc a subi quelques modifications pour fonctionner:

– passage à tomcat 8
– inclusion de spring 4
– inclusion de spring web
– inclusion de spring-data
– servlet 3.0

Les sources sont disponibles ici

Merci Raphaël pour l’info.

 

Configurer Selenium par annotations

Pour faire suite à l’article précédent sur la configuration spring, voici le même type de configuration pour Selenium (outil de test d’intégration pilotant un navigateur).

On va pouvoir lancer les tests avec seulement 3 classes et 0 xml.

1 – on définit une classe de configuration qui va contenir l’url de base du site et le driver du navigateur à tester:

2 – on définit ensuite une classe abstraite qui va référencer la configuration et va contenir un petit « tips » pour ne pas avoir plusieurs processus de firefox en même temps, lorsque qu’on lance plusieurs tests

3- et enfin la classe de test qui vérifie que le code du controller est correcte:

4- pour que tout s’enchaîne correctement, il faut modifier le pom.xml

et ajouter les dépendances suivantes:

Attention: La version de selenium est fortement lié à la version de firefox. Si l’exemple ne marche pas, il faut vérifier qu’une nouvelle version n’est pas disponible.

Le lancement de la commande

devrait donner un résultat du type:

 

Les sources sont ici: github

références:

Configurer spring sans fichier XML

Pour changer un peu de docker, voici un petit article pour initier un projet spring sans fichier de configuration XML.

Je vais créer une petite application avec un Controller Spring MVC.

Tout d’abord, on ajoute les dépendances. Servlet 3.1, spring-context , spring mvc suffisent:

On va ensuite créer une classe qui va permettre de gérer l’initialisation de la configuration spring. Pour cela, j’utilise une nouveauté de servlet 3.0 qui est  l’interface WebApplicationInitializer:

En implémentant une classe avec la méthode onStartup, on peut faire l’initialisation de son application. C’est plus simple que de faire une « fausse » servlet avec un paramètre loadOnStartup dans le fichier web.xml

Voici le code de la classe que j’utilise:

La méthode getContext va permettre de gérer la configuration par annotation en commençant par le package com.axioconsulting.demo.spring.config.

Dans ce package, j’ai défini 2 classes.

L’annotation @Configuration permet à Spring de savoir que cette classe est à prendre en compte pour la configuration. Dans notre cas, on précise juste qu’il faut scanner le package com.axioconsulting.demo.spring.controller (c’est là que va se trouver le controller)

Cette classe permet d’importer la configuration spring MVC.

NB: On aurait pu fusionner les 2 classes.

Il ne reste plus qu’à mettre en place le controller.

Il s’agit d’un controller basic qui va répondre un message sur /hello ou sur /hello?name=monNom

anonyme monNom

Et voila, on a réussi à initier une appli spring MVC en manipulant seulement des annotations ce qui me parait plus simple.

A voir sur le long terme et sur un projet un peu plus gros si les annotations sont suffisantes.

Les sources sont ici:  https://github.com/BenoitCharret/demoSpring