Guice: Comment changer l'injection de l'exécution d'une dynamique de site web)

Ce qui suit est une approximation du problème que je me pose.

Pense que nous avons un programme de validation de mot de passe avec certaines règles.

public interface RuleChecker{

    //Checks for a password strenght, returns 10
    //for strong or 0 for soft password.
    int check(String pass);
}

Et puis nous avons plusieurs implémentations, notre service n'acceptera que le mot de passe si c'est plus de 8 score.

public class NoCheck implements RuleChecker {
    public int check(String pass){return 10;}
}

public class LengthCheck implements RuleChecker{
    ...
}
public class AlphanumericCheck implements RuleChecker{
    ...
}
public class AlphaAndLenghtCheckAdapter implements RuleChecker{
    ...
}

Mais pour des fins de test, nous voulons mettre en œuvre un webservice dans l'application où l'on peut "admin" ces règles, et de sélectionner celles à avoir.

public class PasswordCheckService{

     private RuleChecker checker;

     @Inject
     public PasswordCheckService(final RuleChecker checker){
         this.checker = checker;
     }

     public boolean checkPassword(String password){
         return checker.check(password) > 8;
     }
}

Donc, est-il possible de Guice, de changer lors de l'exécution, l'injection d'un service a?

Exemple:

Nous avons commencé l'application et par défaut LengthCheck est sélectionné et injecté sur l'application, sur le site, nous sélectionnons les NoCheck case et les options d'enregistrement, qui est stockée dans la base de données, puis-je configurer Guice pour modifier automatiquement le haricot, le service avait injecté avant? donc à partir de maintenant et il n'y aura pas de vérification sur les nouveaux mots de passe?

--

Que pour l'instant, j'ai trouvé les sujets

Google Guice et en variant les injections au moment de l'exécution
Mais je ne sais pas si ce genre de fournisseurs correspond à mon problème.

Guice d'exécution de la dépendance des paramètres de réinjection
Cette belle question est en train de parler de quelque chose de similaire, mais pas ce que je suis à la recherche de la forme.

guice: le temps d'exécution d'injection/de liaison à la ligne de commande
C'est le plus proche à mon problème mais il n'est sur le départ "runtime" et ne changent pas au cours du temps.

Toute aide?

Merci!

L'aide de la pointe de la premier commentaire que j'ai mis en œuvre cette POC mais ne fonctionne toujours pas, si vous changez de sélectionner un autre bouton, le service de haricot n'est pas mis à jour.
https://bitbucket.org/ramonboza/guicedynamicconfig

Bonne question. J'ai essayé de faire quelque chose de très similaire.

OriginalL'auteur RamonBoza | 2013-10-14