title: Specifying HK2 names on injectee at bind time
body: <p>I'm using HK2 for dependency injection across all of my REST microservices. When I create a Database Access Object (DAO), the constructor usually looks like</p>
  
  <pre><code>@Inject
  public ServiceDao(final DataSource dataSource) {
      ...
  }
  </code></pre>
  
  <p>and the app has an initialization block defining all of the bindings</p>
  
  <pre><code>@Override
  protected void configure(ServiceConfig config, AbstractBinder binder) {
      binder.bind(config.dataSource).to(DataSource.class);
      binder.bind(ServiceDao.class).to(ServiceDao.class).in(Singleton.class);
  }
  </code></pre>
  
  <p>I have a service that, for performance reasons, needs direct access to another service's database. I know that I <em>can</em> modify each DAO to have a <code>@Named</code> DataSource</p>
  
  <pre><code>public ServiceADao(final @Named("ServiceADataSource") DataSource) {
  </code></pre>
  
  <p>-</p>
  
  <pre><code>binder.bind(config.serviceADataSource)
        .named("ServiceADataSource")
        .to(DataSource.class);
  </code></pre>
  
  <p>However, is there any way that I can specify which DataSource each of my DAOs should use, without modifying the DAO code itself? (Using only the <code>AbstractBinder</code> that I have available in my configure block?)</p>