En référence à l'article Guice's custom injections, son TypeListener vérifie l'annotation InjectLogger.class, qui peut être facultative. Supprimer cette vérification injectera à tous les types Logger.class.Enregistreur d'injection automatique avec guice
class Log4JTypeListener implements TypeListener {
public <T> void hear(TypeLiteral<T> typeLiteral, TypeEncounter<T> typeEncounter) {
for (Field field : typeLiteral.getRawType().getDeclaredFields()) {
if (field.getType() == Logger.class
&& field.isAnnotationPresent(InjectLogger.class)) {
typeEncounter.register(new Log4JMembersInjector<T>(field));
}
}
}
}
Je suis tenté d'enlever "& & field.isAnnotationPresent (InjectLogger.class)" de l'auditeur.
Si nous utilisons Guice pour injecter toutes les instances de notre Logger, y a-t-il une raison de ne pas le faire automatiquement (sans besoin d'annoter)?