Guice обеспечивает два варианта так называемых связывания аннотаций, которые, кажется, действительно ломаются до class- и аннотации на уровне экземпляра:Guice: классовые или уровня экземпляра связывания аннотаций
«класса уровня» :
bind(Service.class).annotatedWith(Red.class).to(RedServiceImpl.class);
@Red
public class SomeService implements Service { ... }
Service redSvc = injector.getInstance(SomeService.class);
"экземпляра уровня":
bind(Service.class).annotatedWith(Names.named("Blue").to(BlueServiceImpl.class);
@Blue blueSvc = injector.getInstance(Service.class);
Когда один метод льготной над другим? Кажется, что аннотации уровня класса более абсолютные/негибкие, чем уровень экземпляра. Плюсы/минусы/оговорки/подводные камни любого метода?