生产者与CDI对HashMap的模糊注入

时间:2013-09-11 21:00:17

标签: java cdi producer

我有以下课程:

public class MyMap extends HashMap {
   public MyMap () { }
   some more methods...
}


@SessionScoped
public ProducerClass implements Serializable {
   @Produces @MyItem  HashMap<A,B> produceItems () { }
}

@Named 
public ConsumerClass {
  @Inject @MyItem HashMap<A,B> property;
}

@Retention(RUNTIME)
public @interface MyItem {
}

我在MyMap和HashMap表单ConsumerClass的属性中得到错误的模糊注入点。

怎么可能?我认为注入类是通过@MyItem注释给出的唯一。

1 个答案:

答案 0 :(得分:5)

您必须将 MyItem 标记为CDI 限定符,否则此注释将毫无用处。

@Qualifier
@Retention(RUNTIME)
public @interface MyItem {
}

应该做的。