CDI Producer(s)同一类的不同版本

时间:2013-04-30 21:48:30

标签: java-ee-6 cdi jboss-weld weld

我有一个生成SimpleDateFromat对象的JEE6简单生成器类:

public class myProducer {

    @Produces public SimpleDateFormat produceASimpleDateFormat(final InjectionPoint injectionPoint)
    {
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    }
}

我想要:

  1. 创建一个新的制作人,并以某种方式能够在课堂上指示DateFormat在哪里注入或... ...
  2. 编辑我现有的Producer,根据传递的参数生成不同的SimpleDateFormat。
  3. 我应该如何最好地实现它?

1 个答案:

答案 0 :(得分:3)

听起来像是用于限定符。

你可以

@Produces
@TypeA
public SimpleDateFormat produceTypeAFormat() {
    return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
}

@Produces
@TypeB
public SimpleDateFormat produceTypeBFormat() {
    return new SimpleDateFormat("MM-dd-yyyy HH:mm:ss");
}

或者更动态的地方,你读取注入点以读取带有内容的限定符,例如@Format("yyyy-MM-dd HH:mm:ss"),你可以读取注入点上的限定符。