java - 如何从 Guice 的注入(inject)器中检索带注释的实例?

标签 java dependency-injection configuration annotations guice

假设我有一个模块:

Module extends AbstractModule
{
  @Override
  protected void configure()
  {
    bind(String.class).
      annotatedWith(Names.named("annotation")).
        toInstance("DELIRIOUS");
  }
}

我想测试模块并检查它是否在 String 字段中注入(inject)了正确的值,该字段用 Names.named("annotation") 进行了注释,但没有类和一个字段,但直接从注入(inject)器获取值:

@Test
public void test()
{
  Injector injector = Guice.createInjector(new Module());

  // THIS IS NOT GOING TO WORK!
  String delirious = injector.getInstance(String.class); 

  assertThat(delirious, IsEqual.equalTo("DELIRIOUS");
}

最佳答案

injector.getInstance(Key.get(String.class, Names.named("annotation")));

关于java - 如何从 Guice 的注入(inject)器中检索带注释的实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5118082/

相关文章:

javascript - grunt-concat 分隔符选项?

python - 神社 : variable inside string inside if statement

java - 递归或迭代地从 HashMap 中检索键值组合

c# - DryIoc、LightInject 体验

android - IntentService 的依赖注入(inject)不起作用

java - 如何在 Play 2.5.4 中使用 Guice 注入(inject)实用程序类

python - 获取 nosetests 配置选项

Java Stream.collect 使用 groupingBy

java - 在java中替换特殊单词的最佳方法

java - 我在哪里定义 http ://localhost:8080/"homepage"