Какой самый простой способ получить InjectionPoint, когда ваш метод производителя создает компонентный компонент? По какой-то причине спецификация позволяет разрешить инъекцию InjectionPoint при производстве скошенных бобов. Есть ли простой способ сделать это или какой-то болг-запись или учебник для этого?CDI: Получение InjectionPoint при производстве скошенного компонента
Для clarifiaction, вот что Id нравится делать, но то, что запрещено в спецификации:
@Produces
@RequestScoped
@MyAnnotation
private MyObject produce(InjectioPoint ip){
....
}
Хм, возможно, я ошибаюсь здесь, но насколько я понимаю, область действия определяет только жизненный цикл инжектируемого компонента. В этом случае производитель будет вызываться один раз для каждой точки впрыска во время жизненного цикла, но не требуется возвращать один и тот же компонент для каждой точки впрыска. Я напишу для этого тестовый файл и опубликую результаты. – PhilBa
Оказывается, вы были правы; метод производителя получает только один раз. В этом случае им любопытно, возможно ли изменить поведение. Я видел, что Omnifaces, похоже, справился с этим, см. Https://github.com/omnifaces/omnifaces/blob/master/src/main/java/org/omnifaces/cdi/param/DynamicParamValueProducer.java – PhilBa
В этом примере область из bean-компонента '@ Dependent', возвращаемого методом' getScope': https://github.com/omnifaces/omnifaces/blob/master/src/main/java/org/omnifaces/cdi/param/DynamicParamValueProducer.java # L88 –