Пользовательский ресурс в аннотациях @Resource добавлен во время выполнения - PullRequest
0 голосов
/ 18 ноября 2009

Я хочу иметь возможность делать что-то подобное в Сессионном компоненте без состояния

@Resource(name="mycustomthingie") private CustomClass stuff;

Введенное значение зависит от контекста (говоря: нить). Я думаю, это было бы возможно, если бы я связал ObjectFactory с JNDI-контекстом, который доставляет правильный объект при запросе.

Как я понимаю, чтобы это работало, мне нужно было бы добавить ресурс в контекст JNDI "java: comp", но это явно не разрешено спецификацией EE5. Есть ли подтекст, в котором мне разрешено писать, или есть другой способ получить что-то похожее на работу?

Спасибо

Peter

1 Ответ

2 голосов
/ 18 ноября 2009

Согласно этой статье от InfoQ, которая хорошо справляется с обобщением части Внедрения ресурсов в JSR-244 (я не смог найти это в одном месте в спецификации ):

Впрыск ограничен только первым конструкции класса, определенные в Java Платформа EE, в том числе:

  • SessionContext объект
  • DataSources объект
  • UserTransaction
  • EntityManager интерфейс
  • TimerService интерфейс
  • Другие бобы предприятия
  • Веб-сервисы
  • Очереди сообщений и темы
  • Фабрики соединений для ресурса адаптируется
  • Записи окружения ограничены Строка, Символ, Байт, Короткий, Integer, Long, Boolean, Double и Поплавок.

Инъекционные средства в Java EE 5 не применяются к любому POJO (который является часто критикуется весной сообщество) [...]

Так что, если ваш CustomClass не является управляемым компонентом и не является простой записью среды (что, похоже, не так), я не думаю, что вы можете внедрить его.

...