L'objectif de ce TP est de transformer l'application SensorLab en une application avec de l'injection de dépendances.
Ce TP doit être réalisé en 2 heures (et déposer sur dépôt github
).
public interface ISensor {
public double getValue() throws SensorNotActivated;
public void onOff();
public boolean getStatus();
}
C'est un projet Maven incluant les dépendances Spring (voir le fichierpom.xml
) mais également un projet Gradle
(voir le fichier build.gradle
). Vous pouvez donc utiliser à votre guise l'un de ces deux outils.
Pour ces exercices, vous n'avez pas besoin de modifier le code ou les interfaces des classes existantes
sauf eu.telecomnancy.injection.InjectionApplication
.
Vous pouvez éventuellement ajouter des annotations si besoin
a) Vous devez modifier eu.telecomnancy.injection.InjectionApplication
pour permettre l'initialisation de l'application
en construisant la configuration avec Spring :
- Faites la configuration en utilisant les annotations
- faites la configuration en faisant la configuration dans un fichier XML
b) Écrivez une autre implantation de l'interface eu.telecomnancy.injection.ISensor
qui retourne toujours la même valeur
et testez la avec une nouvelle configuration.
c) En ajoutant un objet adapter utilisez l'injection pour que le programme utilise l'implantation founie
eu.telecomnancy.injection.StrangeSensor
.
Vous pouvez utiliser cette référence pour vous aider : http://www.vogella.com/tutorials/SpringDependencyInjection/article.html
Vous pouvez également utiliser la doc de référence de Spring : https://spring.io/guides
If you want to run the application using Gradle on the command line, you might use gradle bootRun -q --console=plain
command to get rid of fancy gradle outputs.