Après une inspection superficielle, il semble que SLF4J et Guice (enfin, tout cadre DI, en fait) sont en quelque sorte des philosophies contradictoires. SLF4J prend l'approche "hey, nous ne saurons pas jusqu'à l'exécution quelles classes nous allons lier, et c'est OK" Guice, d'autre part, semble dire "hey, nous devons savoir à compile-time exactement à quelles classes nous nous lions ".Comment injecter des liaisons SLF4J avec Guice?
Donc je demande: est-il possible d'utiliser Guice/Spring/quel que soit le cadre DI pour configurer/injecter des liaisons SLF4J?
Le point de départ est que Java ClassLoader
est ce qui "injecte" SLF4J à l'exécution avec le bon Logger/LoggerFactory/etc. objets, donc je ne peux pas comprendre comment injecter ces ClassLoaders afin qu'ils retournent le org.slf4j.impl.Logger
que je veux à l'exécution:
Je demande parce que j'aime l'avantage de SLF4J et de se connecter à une API, mais aussi comme les avantages de DI. Y a-t-il un moyen de faire ce travail? Merci d'avance!
Qu'essayez-vous exactement de faire? Essayez-vous d'utiliser Guice pour injecter 'Logger'? Injecter 'LoggerFactory'?Lier 'LoggerFactory' à une implémentation d'API particulière basée sur une configuration de Guice? (Je n'ai pas travaillé avec SLF4J auparavant, mais d'après ce que je peux dire, tous les trois sont viables.) –