Где я должен объявить свои ресурсы CDI? - PullRequest
3 голосов
/ 11 июня 2010

JSR-299 (CDI) представляет (к сожалению, названную) концепцию ресурса: http://docs.jboss.org/weld/reference/1.0.0/en-US/html/resources.html#d0e4373

Вы можете рассматривать ресурс в этой номенклатуре как мост между внедрением зависимостей марки Java EE 6 (@EJB, @Resource, @PersistenceContext и т. П.) И марки внедрением зависимости CDI.

Общая суть заключается в том, что где-то (и это будет корень моего вопроса) вы объявляете, что составляет класс-мост: он содержит поля, аннотированные как аннотациями @EJB или @PersistenceContext или @Resource в Java EE, так и CDI аннотации @Produces. В результате Java EE 6 внедряет контекст постоянства, скажем, там, где он вызывается, и CDI распознает этот внедренный PersistenceContext в качестве источника для будущих инъекций (обрабатывается @Inject).

Мой вопрос: каков консенсус сообщества - или есть ли он - на:

  • как должен называться этот класс моста
  • где должен жить этот класс моста
  • лучше ли локализовать все эти вещи в одном классе или сделать несколько из них

...

Оставляя наедине со своими собственными устройствами, я думал о том, чтобы объявить один класс с именем CDIResources и использовать его в качестве Единого Истинного Места для связи DI Java EE с DI CDI. Многие примеры делают что-то похожее, но мне не ясно, являются ли они просто примерами, или это хороший способ сделать это.

Спасибо.

1 Ответ

4 голосов
/ 11 июня 2010

Это кажется очень субъективным, но I предпочитают делать несколько классов, а I вызывают FooProducer класс, производящий Foo.

...