2013-04-30 6 views
2

У меня есть JEE6 простой класс производитель, который производит SimpleDateFromat объект:CDI Производитель (ы) Различные версии того же класса

public class myProducer { 

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

Я хочу либо:

  1. создать новый продюсер и как-то уметь диктовать в классе то, что DateFormat вводится там, где ...
  2. Редактирование моего существующего Продюсера для создания другого SimpleDateFormat на основе переданного параметра.

Как лучше всего это достичь?

ответ

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"), где вы можете прочитать спецификатор на injectionpoint.

Смежные вопросы