Использование только НЕКОТОРЫХ классов из jar для инъекции CDI - PullRequest
0 голосов
/ 05 июня 2018

Я хочу переместить полезные компоненты CDI из проекта в отдельный JAR и повторно использовать их в других проектах.

Есть ли способ для , использующего проект , контролировать, какие компоненты (например,Производители) из JAR будут доступны в его контейнере?

Я ищу что-то вроде инверсии beans.xml.Что-то вроде дескриптора import .

То, что я пробовал:

  • квалификаторы: они не очень удобны в моем случае
  • классыв JAR без аннотаций CDI (например, @Produces) и пустых подклассов с аннотацией в с использованием проекта

Любые другие идеи?

1 Ответ

0 голосов
/ 06 июня 2018

@ maress отличная идея!

Некоторые подробности того, что я должен был сделать:

  • в lib JAR
    • beans.xml: set bean-discovery-mode="annotated"
    • аннотируют все «открытые» компоненты с помощью @Alternative и one @...Scoped
    • , аннотируют классы, содержащие методы источника с @...Scoped и метод источника с @Alternative и@Produces
    • произведенные классы не должны аннотироваться @Alternative
  • в приложении JAR / WAR
    • beans.xml: список всехнеобходимые компоненты и производитель из lib JAR как <alternative>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...