【问题标题】:Custom resource in @Resource annotations added at runtime@Resource 注解中的自定义资源在运行时添加
【发布时间】:2009-11-18 17:04:23
【问题描述】:

我希望能够在无状态会话 Bean 中做这样的事情

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

注入的值取决于上下文(说:线程)。 我想如果我将 ObjectFactory 绑定到 JNDI 上下文中,在请求时提供正确的对象,这将是可能的。

据我了解,要使其正常工作,我必须将资源添加到“java:comp”JNDI 上下文中,但这显然是 EE5 规范所不允许的。 是否有允许我写作的子上下文,或者是否有其他方法可以得到类似于工作的东西?

谢谢

彼得

【问题讨论】:

  • CustomClass 包含什么?只有数据还是行为?

标签: java jakarta-ee ejb-3.0 jndi


【解决方案1】:

根据 InfoQ 的 this article 的说法,它很好地总结了 JSR-244 的资源注入部分(我在规范中的一个地方找不到这个):

注入仅限于第一次 Java 中定义的类结构 EE平台,包括:

  • SessionContext对象
  • DataSources对象
  • UserTransaction
  • EntityManager接口
  • TimerService接口
  • 其他企业 bean
  • 网络服务
  • 消息队列和主题
  • 资源适配的连接工厂
  • 环境条目仅限于字符串、字符、字节、短 整数、长整数、布尔值、双精度和 浮动。

Java EE 5 中的注入工具 不适用于任何 POJO(即 经常被春天批评 社区)[...]

因此,如果您的 CustomClass 不是托管组件,也不是简单的环境条目(似乎并非如此),我认为您不能注入它。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-03
  • 1970-01-01
  • 1970-01-01
  • 2022-06-13
  • 2022-06-15
相关资源
最近更新 更多