Bonjour,

Voici la description du problème:

J'ai un appel d'un web service s'effectuant comme suit:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
@Autowired
private ManagePartyAdapterService managePartyAdapterService;
 
managePartyAdapterService.appelService();
Il s'agit d'un interface.


Selon le contenu d'un fichier de config, je dois pouvoir utiliser une autre interface.
(Celle-ci possède le même nom et les mêmes méthodes, mais fonctionnant différemment sur un endPoint différent)

Dans un cas j'aimerais donc avoir
Code : Sélectionner tout - Visualiser dans une fenêtre à part
import com.interfaces.(...).ManagePartyAdapterService;
et dans l'autre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
import com.interfacesbis.(...).ManagePartyAdapterService;

Solutions étudiées:

Création de 2 varialbes
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
@Autowired
private package1.ManagePartyAdapterService service;
// et 
@Autowired
private package2.ManagePartyAdapterService servicebis;
et truc du genre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
if (lectureFichier = cas1) service.appelService();
else servicebis.appelService();
Mais j'aurai un problème avec la configuration Spring et les @Autowired + le setter qui doit être unique sinon ça complique pas mal de choses.

Cette classe appelant le service possède des méthodes appelées un peu partout dans un projet de 200 classes je préfère donc pas dupliquer la classe et gérer son appel partout.

Y a-t-il un moyen simple de régler ce problème? (en espérant que ce soit clair).
Un import $package; serait parfait mais pas trouvé comment faire
(Edit: je remarque que cette idée est stupide vu que je dis plus bas que je ne dois pas recompiler le projet)

Je vois sinon la compilation dynamique en mettant un "change-me" à la place du package, et compiler en mettant le contenu du fichier, mais le projet ne doit pas être recompilé/redéployé. Il faut modifier le fichier de config et à la limite relancer l'appli.

Voilou merci